2013-03-13 38 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),人们将能够更好地提供帮助。

希望这有助于

相关问题