在Angular中使用jQuery插件
Using jQuery Plugins alongside Angular
我知道理想情况下应该将jQuery插件重新打包成指令,但我不确定我对这种方法的感受。首先,这意味着无论插件何时更新,都不只是拉一个新的repo,还需要编辑指令。
我怎么能保持角模块从jquery插件可能通过它的api与jquery插件通信分开。requires或类似的库是否适合于此?
只要插件维护他们的api,你的指令应该继续按预期工作。jQuery插件上的指令实际上只是一个采用Angular Way
的包装器。
由于大多数jQuery插件都是通过对特定dom选择(通常传递一个options对象)的单个函数调用来启动的,因此您使用的指令样板非常常见。
通过采用angular的方式,你所做的是抽象jQuery插件的功能,以允许一个更模块化和声明性的html。除了传入任何作用域值来控制插件更新(如果它是一个本地指令,你无论如何都会这样做),一个基本指令将如下所示:
angular.directive('jqWrapper', ['$timeout', function($timeout){
return {
restrict: 'A',
link: function(scope, elem, attrs) {
$timeout(function(){
elem.myJQueryFunction();
});
}
};
}]);
显然,选项和手表可能会使它在需要的时候变得有点复杂,但上面的指令可能会与许多jQuery插件一起工作。还要注意$timeout
的使用,以确保插件在渲染后应用。
所以基本上不要认为指令是使jQuery插件工作所必需的。指令是一种额外的功能,它可以将所需的jQuery代码转换为更模块化和更有用的东西。
相关文章:
- 如何在Angular2中使用jQuery插件
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 我的jQuery插件参数没有正确启动,遇到了问题
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- TableExport jquery插件:文件名和扩展名问题
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- jQuery插件-从插件中调用公共方法
- 扩展jQuery插件以更改配置
- "工具提示"jQuery插件坏了
- 不能在图像中的地图标记中使用花式框jquery插件的区域标记
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 合并TinyMCE(jQuery插件)文件
- 带有jquery插件的backbone.js视图
- 自制jQuery插件已触发,但无法工作
- 我如何才能找到哪些网站使用我的jQuery插件
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 在多个元素上使用jquery插件,只需稍作修改
- HtmlBox(jquery插件)在ajax调用中不起作用
- 构造jQuery插件
- 使用filedownload jquery插件处理FilePathResult返回值