多个 Codemirror 实例
Multiple Codemirror instances
我可以创建和显示多个动态代码镜像实例,但我不能用下面的代码引用它们。 认为问题是我需要创建一个动态函数名。 (这里不是 100% 了解如何操作)
var function (somefilename, xml){
var instanceName = somefilename + 'Editor';
require([
'codemirror/lib/codemirror','codemirror/mode/xml/xml',
'codemirror/addon/search/search'
], function(CodeMirror) {
instanceName = CodeMirror.fromTextArea(document.getElementById(somefilename + 'xml'), {
lineNumbers: true,
mode: 'xml'
});
instanceName.setValue(xml);
instanceName.focus();
});
};
我实际上是在以错误的方式解决这个问题,应该一直使用一个对象来存储所述多个实例。这当然让我能够引用任何存储的记录。
希望这对以后的人有所帮助!
//Create your object to store multiple instances of CodeMirror
var cmInstances = {}
function createInstance(someId) {
在我的例子中,我将使用 requirejs 来加载 'on demand'
require([
'codemirror/lib/codemirror', 'codemirror/mode/xml/xml',
'codemirror/addon/search/search'
], function(CodeMirror) {
所以我在下面所做的是在我的对象中创建一个 Codemirror 对象的实例。这实质上是我之前在函数中传递的 ID 的关键(即:'someId)。同样在我调用下面的函数之前,我有一个先前的函数创建了一个 'textarea',我已经将它注入到名为“#someID_xml”的页面中。因此 getElementByID
的参考
cmInstances[someId] = CodeMirror.fromTextArea(document.getElementById(someId + '_xml'), {
lineNumbers: true,
mode: 'xml'
});
});
};
我可以创建和显示多个动态代码镜像实例,但我不能用下面的代码引用它们。 认为问题是我需要创建一个动态函数名。 (这里不是 100% 了解如何操作)
var function (somefilename, xml){
var instanceName = somefilename + 'Editor';
require([
'codemirror/lib/codemirror','codemirror/mode/xml/xml',
'codemirror/addon/search/search'
], function(CodeMirror) {
instanceName = CodeMirror.fromTextArea(document.getElementById(somefilename + 'xml'), {
lineNumbers: true,
mode: 'xml'
});
instanceName.setValue(xml);
instanceName.focus();
});
};
我实际上是在以错误的方式解决这个问题,应该一直使用一个对象来存储所述多个实例。这当然让我能够引用任何存储的记录。
希望这对以后的人有所帮助!
//Create your object to store multiple instances of CodeMirror
var cmInstances = {}
function createInstance(someId) {
在我的例子中,我将使用 requirejs 来加载 'on demand'
require([
'codemirror/lib/codemirror', 'codemirror/mode/xml/xml',
'codemirror/addon/search/search'
], function(CodeMirror) {
所以我在下面所做的是在我的对象中创建一个 Codemirror 对象的实例。这实质上是我之前在函数中传递的 ID 的关键(即:'someId)。同样在我调用下面的函数之前,我有一个先前的函数创建了一个 'textarea',我已经将它注入到名为“#someID_xml”的页面中。因此 getElementByID
的参考 cmInstances[someId] = CodeMirror.fromTextArea(document.getElementById(someId + '_xml'), {
lineNumbers: true,
mode: 'xml'
});
});
};