2014-11-03 70 views
0

我需要跟蹤CodeMirror編輯器中的更改。所以,我實現:CodeMirror在更改函數上實現時進入無限循環

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

onChangeFunc我插入基於使用

CodeMirrorInstance.setValue(newCode);

顯然,這會導致無限循環的情況新的價值。如何打破這個惡性循環?

+0

您可以嘗試changeObject,它是change事件中的第二個參數。它有五個屬性,通過它你可以打破電話。 http://codemirror.net/doc/manual.html – Bala 2014-11-03 15:31:10

回答

2

setValue將始終觸發另一個"change"事件(它改變了內容,畢竟)。您必須使您的更改處理程序足夠聰明,才能對您自己造成的更改不引起其他更改。查看傳遞給"change"事件處理函數的第二個參數的origin屬性可能會起作用 - 它包含識別更改源的sting,當調用setValue時將包含"setValue"