在实现更改功能时,CodeMirror进入无限循环

时间:2014-11-03 13:30:01

标签: javascript angularjs codemirror

我需要跟踪CodeMirror编辑器中的更改。所以我实施了:

CodeMirrorInstance.on("change", function(CodeMirrorInstance){
        $scope.onChangeFunc(CodeMirrorInstance);
    }  );

onChangeFunc中,我使用

基于条件新值插入

CodeMirrorInstance.setValue(newCode);

显然它会导致无限循环。如何打破这种恶性循环?

1 个答案:

答案 0 :(得分:3)

setValue将始终触发另一个"change"事件(毕竟它会更改内容)。您必须使您的更改处理程序足够聪明,不会对您自己造成的更改造成其他更改。查看传递给origin事件处理程序的第二个参数的"change"属性可能有效 - 它包含一个标识变更源的sting,"setValue"setValue 1}}被召唤。