如何在Monaco编辑器中使用setValue?

9

如何正确设置Monaco编辑器的文本内容,而不用担心撤销堆栈?monacoEditor.setValue("text") 似乎在深处崩溃:

vue.esm.js?efeb:1741 TypeError: (intermediate value)(intermediate value)(intermediate value).create is not a function
    at D (textModel.ts:90)
    at f.setValue (textModel.ts:385)
    at t.setValue (commonCodeEditor.ts:211)
    at VueComponent.loadFile (ResourceViewer.vue?d447:85)

你是如何配置编辑器的?在创建实例时,你使用了语言和值,还是传递了一个模型? - David I. Samudio
问题在于我传递的不是字符串,而是 JSON 对象。测试时使用 "text" 也无法解决问题,因为 amdRequire 是异步的。 - Vadim Peretokin
2个回答

27

针对谷歌搜索的未来旅行者,在您初始化编辑器后,以下代码适用于0.2.0版本:

editor.getModel().setValue('some value');

2
那会清除编辑器的历史记录,还有其他方法可以保留历史记录吗? - Alaa Kaddour
3
不知何故那样做不起作用,必须像这样做:monaco.editor.getModels()[0].setValue('一些文本') - zenw0lf

0
问题的原因是我没有传递一个字符串,而是一个 JSON 对象。测试时使用“text”也没有起作用,因为 amdRequire 是异步的。

你能详细说明一下吗?比如你最终传递给setValue()函数的是什么?你是否将字符串转换为JSON并传递了它? - Avik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接