从对象函数获取CodeMirror值

时间:2015-06-23 05:13:18

标签: javascript function variables object codemirror

我有以下代码:

 var examples = {
    'style': {
        create: function (div, ref) {
            var codeMirror = CodeMirror(div, {
                lineNumbers: true,
                mode: 'css'
            });

            this.firepad = Firepad.fromCodeMirror(ref, codeMirror);

            var self = this;
            this.firepad.on('ready', function () {
                if (self.firepad.isHistoryEmpty()) {
                    self.firepad.setText('.red {color: red;}');
                }
            });
        },
        dispose: function () {
            this.firepad.dispose();
        }
    }
};

现在通常我会去codeMirror.getValue()获取CodeMirror实例的内容,我不知道如何访问对象函数中的变量(我甚至说过了吗?)

我尝试了examples.style.getValue()但当然会返回错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

嗯,你不能。无法在函数外部访问局部变量。

您必须使用Firepad API来获取值:

var text = examples.style.firepad.getText();
// or
var html = examples.style.firepad.getHtml();

或者,您可以将CodeMirror实例分配给属性并使用getValue

但是,为方便起见,您可能希望向对象添加另一个方法:

getText: function() {
  return this.firepad.getText();
}