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