1

我正在尝试在 Angular 应用程序中运行 JS 插件。所以我有两个文件:index.html 和 view.html(模板)。后者是部分加载在 index.html 内的 ng-app DIV 中。

现在,jQuery 和插件在 index.html 中声明。由于 view.html(模板)中的实现在技术上是由 Angular 动态生成的,因此声明无法“看到”它,即使它们使用 .on() 方法。我相信这个问题在某种程度上与 JavaScript 无法看到动态生成的内容有关。

试图在这里获得一些关于如何使其工作的建议。尝试在部分(即 view.html)中移动脚本声明,但无济于事。

4

1 回答 1

1

将 jquery(或任何其他插件)与 angular 集成需要您以不同的方式思考。特别是在处理双向数据绑定时。如果 jquery 插件更改了 Angular 模型,则需要使用 $scope.apply() 通知模型的范围(请参阅 Angular 文档)。

Angular 推荐的做法是将 DOM 操作和使用 jquery 插件包装在 angular 指令中。将 jquery 插件作为 Angular 应用程序的一部分而不进行集成是很好的 - 但是,如果您正在接触可能不稳定的相同东西。编写包装器指令对于初学者来说可能具有挑战性。我建议您查看angular ui(我是团队成员)中的“jq”指令之类的东西,以便开箱即用地使用它,或者为您提供有关如何包装插件的想法。该站点上有许多简单和复杂的指令。

如果您提供了一个示例(plunker 或 jsfiddle),人们将能够提供更好的帮助。

希望这可以帮助

于 2013-03-15T04:58:09.017 回答