将jQuery插件用于Angular js的最佳方法是什么?

时间:2016-09-24 18:01:15

标签: javascript jquery angularjs

我正在使用带有Angular项目的jQuery插件,但是使用jQuery方式

    $(document).ready(function(){
      //calling plugin here
    });

这很好用。我知道这不是正确的方法,并不是强烈推荐,但我已经在这个主题上搜索了几个博客和网站。他们说我们可以为此创建指令但是我无法理解如何为jQuery插件创建任何指令以及它将如何工作?是否可以为每个jQuery插件创建一个Angular指令?

3 个答案:

答案 0 :(得分:2)

您可以创建类似这样的内容

App.directive('jqueryPlugInDirective', function() {
return {
    restrict: 'A',
    link: function(scope, element, attrs) {
        $(element).[jqueryPlugin](ConfigOptions);
      }
    };
});

你的html就像是

 <script type="text/javascript" src="pluginLibFile.js"></script>    
 <div jquery-plug-in-directive></div>

答案 1 :(得分:0)

不建议混淆jQuery和AngularJs,但是,你只需要,你需要使用Angular的jqLit​​e,

以下是参考资料的链接 - https://docs.angularjs.org/api/ng/function/angular.element

答案 2 :(得分:-1)

我更喜欢使用传递全局jQuery元素的匿名函数。

(function($){
  //code 
})(jQuery);

使用匿名函数并将jQuery作为参数传递可以消除由于某些其他库覆盖$而引起的问题。
因为我们将(JQuery)全局对象作为参数传递并将其接收到($)所以,现在使用jQuery,无论是否覆盖它都是jQuery。

但是,您可以使用原生Angular jQuery版本.. jQLite也可以使用angular.Element()

您可以详细了解差异.. jQuery document.ready vs self calling anonymous function