2013-03-13 81 views
1

我想在Angular應用程序中運行JS插件。所以我有兩個文件:index.html和view.html(模板)。後者是在index.html中的ng-app DIV中加載的部分內容。AngularJS應用程序模板中的JS插件不工作

現在,jQuery和插件在index.html中聲明。由於view.html(模板)中的實現在技術上是由Angular動態生成的,因此即使使用.on()方法,聲明也不能「看見」它。我相信這個問題與JavaScript無法看到動態生成的內容有關。

試圖在這裏得到一些關於如何使其工作的建議。嘗試在部分(即view.html)中移動腳本聲明,但無濟於事。

+2

參見[如何「認爲AngularJS」如果我有一個jQuery的背景是什麼?(http://stackoverflow.com/questions/14994391/how-do-i-think-in -angularjs-IF-I-具有-A-jQuery的背景)。然後通過[Noob手冊](https://github.com/angular/angular.js/wiki/Noob-Handbook)查找一些問題,併爲[UI Bootstrap](http://angular-ui.github。 com/bootstrap /)和[Angular Strap](http://mgcrea.github.com/angular-strap/),以便了解如何在Angular中使用jQuery插件。 – Stewie 2013-03-13 09:04:09

回答

1

將jquery(或任何其他插件)與角度整合需要你思考不同。特別是在處理雙向數據綁定時。如果一個jquery插件改變了一個角度模型,你需要使用$ scope.apply()來通知模型的作用域(見angular doc)。

角度推薦的做法是爲DOM操作和使用jquery插件包裝在角度指令中。把jquery插件作爲一個角度應用程序的一部分而沒有整合是很好的 - 但是如果你觸摸到的東西可能不穩定。編寫包裝指令對初學者來說可能很有挑戰性。我建議你看看angular ui(我是一個團隊成員)中的'jq'指令,以便將其用於開箱即用或給出有關如何封裝插件的想法。這個網站上有許多簡單和複雜的指令。

如果您提供了一個示例(plunker或jsfiddle),人們將能夠更好地提供幫助。

希望這有助於

相關問題