2016-11-11 5 views
2
내가 느릅 나무 0.17.1을 사용하고 선택 2 자바 스크립트 라이브러리 (버전 4.0.3)과 상호 운용성하기 위해 노력하고있어

, 여기 내 Main.elm입니다 자바 스크립트 측면 : 나는 domNode.replaceData 함수 아니라고 말하는 나타납니다 국가 내 크롬의 콘솔에서 캐치되지 않는 유형의 오류를 선택할 때외부 DOM에 대한 느릅 나무가 변경 말하는 방법

$(document).ready(function() 
    { 
     var app=Elm.Main.fullscreen(); 
     app.ports.issueselect2.subscribe(function(id) 
     { 
      $('#'+id).select2().on('change',function(e) 
      { 
       app.ports.selection.send(e.target.value); 
      }); 
     }) 
    }) 

지금 (실제로 정의되지 않는다).

문제는 select2가 DOM에 스팬을 추가하고 Elm이 그것에 대해 알지 못한다는 것입니다. domNode은 Elm이 텍스트를 업데이트해야 할 때 span을 업데이트하려고 함을 나타냅니다.

효과가 필요하다고 생각하지만 특수 용도로 사용하는 방법을 모르겠습니다.

내 문제를 해결하는 방법?

jquery 3을 사용하고 있는데, 필자는 elm 프로그램을 main.js로 컴파일하고 js 파일을 다음 순서로로드합니다. jquery.min.js, select2.min.js, main.js 위의 js 코드.

elm-reactor는 elm 코드가 아닌 js 코드에서만 작동하는 것으로 보이기 때문에 디버깅 할 수 없습니다.

+1

불가능한 것은 아니지만 이것을 작동시키기가 어려울 것이라고 생각합니다. Elm의 가상 DOM은 실제 DOM이 항상 동기화되어 있다고 가정합니다. Select2가이 문제를 해결합니다. Elm에서 선택 목록에 대한 데이터 만 관리하는 것이 더 나을 것입니다. 선택한 국가와 옵션 목록을 모델에 보관하십시오.ap 포트로 JavaScript에 옵션을 보내고, 자바 스크립트 랜드에서 '