javascript - AngularJS 应用程序模板中的 JS 插件不起作用

标签 javascript jquery angularjs

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

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

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

最佳答案

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

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

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

希望这有帮助

关于javascript - AngularJS 应用程序模板中的 JS 插件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15379842/

相关文章:

javascript - AngularJS - $watch 出现问题

javascript - 再次运行函数时,它不会读取全局数组

javascript - 使用变量作为名称向 JavaScript 对象添加属性?

javascript - 在大屏幕上禁用 Fullpage.js

javascript - 用于更改文本字段的下拉列表。 Bootstrap Jquery Ajax

javascript - 在工厂内部调用函数时,如何使另一个 Controller 中的 $scope 值更新?

javascript - 单击事件不会使其他字段可一键编辑?

javascript - Jquery 替换并返回原来的

javascript - css类只应用于一个按钮

javascript - 删除数组项列表