Jquery plugins 在AngularJS中集成jQuery插件的正确方法

Jquery plugins 在AngularJS中集成jQuery插件的正确方法,jquery-plugins,angularjs,Jquery Plugins,Angularjs,我想知道将jQuery插件集成到angular应用程序中的正确方法是什么。我已经找到了一些教程和屏幕播放,但它们似乎迎合了一个特定的插件 例如: 我是否应该创建这样的指令- App.directive('directiveName', function() { return { restrict: 'A', link: function(scope, element, attrs) { $(element).'pluginActi

我想知道将jQuery插件集成到angular应用程序中的正确方法是什么。我已经找到了一些教程和屏幕播放,但它们似乎迎合了一个特定的插件

例如:

我是否应该创建这样的指令-

App.directive('directiveName', function() {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            $(element).'pluginActivationFunction'(scope.$eval(attrs.directiveName));
        }
    };
}); 
然后在html中调用脚本和指令

<div directiveName ></div>
<script type="text/javascript" src="pluginName.js"></script>


前面谢谢你

是的,你说得对。如果您使用的是jQuery插件,请不要将代码放入控制器中。相反,创建一个指令,并将您通常拥有的代码放在指令的
链接
函数中

文档中有几点您可以看一下。您可以在这里找到它们:

确保在视图中引用脚本时,最后引用它-在引用angularjs库、控制器、服务和过滤器之后


编辑:在jQuery中使用AngularJS时,您可以使用AngularJS,而不是使用
$(元素)
,而不是使用
angular.element(元素)

我有两种情况,指令和服务/工厂不能很好地发挥作用

场景是,我有一个指令,该指令包含服务的依赖项注入,并且从该指令中我要求服务进行ajax调用(使用$http)

最后,在这两种情况下,即使我给数组一个初始值,ng Repeat也没有归档

我甚至试着用一个控制器和一个隔离的作用域生成一个指令

只有当我把所有东西都移动到控制器上,它才能像魔术一样工作


这里的示例

是的,最好的方法是将所需的jQuery插件封装在一个指令中,这样您就可以从范围变量中获益并控制初始化/方法调用。我不知道在任何情况下我对eval的感觉如何……听说它的做法很糟糕,应该是
$(element)。pluginActivationFunction(scope.$eval(attrs.directiveName));
不带引号。关于允许HTML内容的jQuery插件参数如何?(例如,如果我想通过这个纯文本HTML参数添加一个
ng click
指令)@Fractaliste我不确定你的意思。你能给出一个例子吗?你能解释一下所有$(元素)的确切含义吗.“pluginActivationFunction”(scope.$eval(attrs.directiveName));意思是?我几乎是angularjs的新手。我尝试使用了几个jquery插件,但都不起作用。我们真的需要这样做吗?他们不能只使用angularjs吗?听起来很简单。为什么脚本需要排在最后?