2014-01-16 48 views
0

我想用ACE編輯器在頁面上顯示代碼(JSON響應)。當我在着陸頁上嘗試一個ace示例時,它的工作原理是index.html。但是當我在page2.html上使用相同的代碼時,它不會工作。Ace編輯器不能在其他頁面上工作 - AngularJS App

HTML

<div id="editor"> 
    function foo(items) { 
    var i; 
    for (i = 0; i &lt; items.length; i++) { 
    alert("Ace Rocks " + items[i]); 
    }; 
</div> 

SCRIPT:當放置在其他頁面相同的代碼工作在index.html的,但不會工作。

var editor = ace.edit("editor"); 
editor.setTheme("ace/theme/twilight"); 
editor.getSession().setMode("ace/mode/javascript"); 

我甚至試圖把上面的js代碼在一個外部文件<script src-"js/script,js"></script>與希望這將是可用的任何頁面上。

自一個AngularJS應用,page2.html等頁面通過ngView

+1

我猜你的VAR編輯= ace.edit( 「編輯」);在內容og page2.html加載之前進行評估... – michael

+0

ahh是將它放在'page2.html'的Ctrl上,而不是HTML工程中。謝謝 –

回答

0

加載@邁克爾建議,ACE是評估var editor = ace.edit("editor")加載頁面的內容之前。 而不是在HTML或外部腳本,我不得不把腳本代碼page2.html控制器內使用腳本的....

function page2Ctrl ($scope, $http) { 
var editor = ace.edit("editor"); 
editor.setTheme("ace/theme/twilight"); 
editor.getSession().setMode("ace/mode/javascript"); 
} 

當應用程序繼續page2.html頁面的CTRL被啓動。

0

如果你有內部腳本函數然後把 var editor = ace.edit("editor");

editor.setTheme("ace/theme/twilight"); 
editor.getSession().setMode("ace/mode/javascript"); 

相同的函數內部。
你也可以這樣做:

function doOnLoad() 
    { 
     var editor = ace.edit("editor"); 
     editor.setTheme("ace/theme/twilight"); 
     editor.getSession().setMode("ace/mode/javascript"); 
    } 
相關問題