2013-08-05 107 views
4

我試圖在Ace編輯器中保存更改操作,然後播放它們。下面有一些僞代碼 - 要點是applyDeltas API似乎沒有爲我的編輯器做任何事情。我綁定到編輯器更改事件,將更改變量推送到數組,並嘗試稍後再播放 - 我在下面運行代碼時看不到任何錯誤,但我也沒有看到編輯器內容更改。applyDeltas在ACE編輯器

感謝
穆斯塔法

shouldRecord = true; 
myStoredArray = new Array(); 
editor.on('change', function(e) { 
    if(shouldRecord) { 
     myStoredArray.push(e.data); 
    } 
}); 


//on a button click 
shouldRecord = false; 
editor.getSession().setValue(''); //clear 
for(var currentDelta in myStoredArray) { 
    editor.getSession().getDocument().applyDeltas(currentDelta); 
} 

回答

4

當然,我發現了答案 -

applyDeltas(Object deltas) API採用增量的數組。將我的示例代碼更改爲editor.getSession().getDocument().applyDeltas([currentDelta])可以正確回放。

希望這可以幫助別人。

穆斯塔法

+0

我試過,但我得到的錯誤:遺漏的類型錯誤:無法讀取的未定義的屬性「行」 ace.js 4368.我在做什麼錯? – bewithaman