我正在尝试在Angular应用程序中运行JS插件。所以我有两个文件:index.html和view.html(模板)。后者是在index.html内的ng-app DIV中部分加载的。
现在,jQuery和插件在index.html中声明。由于view.html(模板)中的实现在技术上是由Angular动态生成的,因此声明无法“看到”它,即使它们使用的是.on()方法。我认为问题在某种程度上与JavaScript无法看到动态生成的内容有关。
尝试在此处提供一些有关如何使其工作的建议。尝试在部分(即view.html)中移动脚本声明但无效。
答案 0 :(得分:1)
将jquery(或任何其他插件)与角度集成需要您以不同的方式思考。特别是在处理双向数据绑定时。如果jquery插件更改角度模型,则需要使用$ scope.apply()通知模型的范围(请参阅angular doc)。
Angular推荐的做法是DOM操作和使用jquery插件包装在angular指令中。将jquery插件作为角度应用程序的一部分而没有集成是很好的 - 但是如果你触摸的是相同的东西,那可能是不稳定的。编写包装器指令对初学者来说可能具有挑战性。我建议你看一下像angular ui(我是团队成员)中的'jq'指令,要么开箱即用,要么就如何包装你的插件给你一些想法。该网站上有许多简单和复杂的指令。
如果您提供了一个例子(plunker或jsfiddle),人们将能够更好地提供帮助。
希望这会有所帮助