Elm アプリで CodeMirror を使用してみてください。
update
そのような関数からテキストエリアをバインドします:
( ..., runCodemirror textAreaId)
runCodemirror
ポートはどこですか:
port runCodemirror : String -> Cmd msg
問題はports.runCodemirror
、テキストエリアが DOM に表示される前にイベントが発生することです。
私はそれを解決しようとしsetTimeout
ます:
app.ports.runCodemirror.subscribe(
function (textAreaId) {
setTimeout(
function() {
CodeMirror.fromTextArea(document.getElementById(textAreaId));
},
100
);
}
);
しかし、それは醜いです。100ms は遅すぎます。点滅が見えます。
私が持っている他のオプション: CodeMirror を非表示のテキストエリアまたは MutationObserver API にバインドします。
より良い方法はありますか?