2014-09-20 121 views
0

我正在使用AngularJS。加載文檔後初始化ng-app

其中一項(技術)要求是從服務器獲取「啓用ng」的HTML內容,以響應點擊事件,並通過JavaScript將其注入到<div ng-app>中。

的問題是,新注入的HTML沒有連線,如角穿過編譯鏈接只有階段時,頁面加載的第一次。

有沒有辦法手動觸發它們?
我以錯誤的方式接近這個問題嗎?有沒有一種更習慣的方式來完成我所描述的?

感謝

回答

2

有多種方式注入動態內容到AngularJS的看法。注入動態內容的一種方法是使用ng-include指令。它可以從哪裏獲取視圖。 您可以將其與ng-if結合使用,以實現單擊時的加載視圖。例如:

<span ng-if="clicked"> 
    <div ng-include='pathToTheHtml'></div> 
</span> 

clicked變量將是假的第一,在點擊按鈕將其設置爲true,這將觸發ng-include獲取內容,並將其注入到HTML。

如果你想要更好的控制,那麼你需要使用$ compile服務。需要注入DOM的html需要使用$ compile服務進行編譯並鏈接到作用域。這可以在指令中完成。

element.append($compile(htmlFragment)(scope)