2015-12-08 71 views
1

我有下面的代碼index.html文件:AngularJS:腳本標籤中不能正常工作NG-包括

<div ng-include="'fragment-1.html'"></div> 

片段1.HTML的代碼:

<b>Inside Fragment 1</b> 
<script type="text/javascript"> 
    alert("Inside Fragment 1"); 
</script> 

當我負載的index.html在瀏覽器中,輸出爲:

內部片段1

的DOM有<script>標籤,但沒有顯示警告。

我的假設:

由於DOM載荷首先沿着與角模塊,然後角檢查和中的數據(在這種情況下,片段1.HTML文件的內容)綁定到視圖(索引。 html),它只是在DOM中添加fragment-1.html的元素。要在fragment-1.html中執行JS,我們應該爲它創建一個hack。我的解釋是否正確?還是有什麼我可能會失蹤?

+0

可能重複的[我怎麼可以加載JavaScript文件以及ng-include模板](http://stackoverflow.com/questions/20087274/如何燦我負荷的JavaScript文件,沿與-NG-包括模板) – gyc

回答

1

你並不需要破解。 Angular爲您提供了一個簡潔明瞭的解決方案,可以幫助您實現您的代碼。

控制器

.controller('fragmentOneCtrl', function ($scope) { 
    alert('"Inside Fragment 1"'); 
}) 

查看

<div ng-repeat="go in ['go', 'gogo']" ng-include="'includeThis'"> 

</div> 

<script type="text/ng-template" id="includeThis"> 
    <div ng-controller="fragmentOneCtrl"> 

    </div> 
</script> 
+0

這工作完全在代碼中的index.html本身。我想包含一個單獨的文件fragment-1.html,它的javascript代碼應該在包含在index.html中時運行。 – chaudharyp

+1

好吧,但它不是指令的確切用例嗎? –

+1

感謝您指點我的指示。仍在學習Angular。仍然無法使用指令在fragment-1.html中執行JS。發現我的答案在這裏:[http://stackoverflow.com/questions/32048046/script-not-running-in-templateurl](http://stackoverflow.com/questions/32048046/script-not-running-in-templateurl ) – chaudharyp