尝试在我的 Elm 应用程序中使用 CodeMirror。
update
我从这样的函数绑定一个textarea :
( ..., 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 与不可见的 textarea 或 MutationObserver API 绑定。
有没有更好的办法?