我正在使用 Monaco Editor 来完成我的 Angular 项目。我正在手动更改编辑器的模型 - 在网页上的编辑器中逐字输入,以及以编程方式向编辑器添加或删除字符串。我使用以下命令执行此操作:
this.editor.setValue(...);
或
this.editor.getModel().pushEditOperations(...)
我通过订阅此内容来检测模型值的变化
this.subsc = this.editor.getModel().onDidChangeContent((event: monaco.editor.IModelContentChangedEvent) => {
console.log(event);
});
我需要做的是检测模型上的新更改,并确定更改最初是手动的还是编程的。最终目标是忽略程序更改。 此处描述了检测到的更改发出的事件:https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.IModelContentChangedEvent.html
我考虑过以某种方式在模型更改中编码布尔标志,但这可能是不可能的。
我已经浏览了摩纳哥编辑器的 api 文档,但没有发现任何可以解决我的问题的方法。也许我错过了什么。这是 API 文档的根目录以供参考 https://microsoft.github.io/monaco-editor/api/index.html
@Stephen George 你解决这个问题了吗?我遇到同样的问题。