Javascript 在AngularJS指令中使用Jquery是好主意还是坏主意?

Javascript 在AngularJS指令中使用Jquery是好主意还是坏主意?,javascript,jquery,angularjs,angularjs-directive,Javascript,Jquery,Angularjs,Angularjs Directive,下面您可以看到我的指令代码 我的问题是:“我可以将jquery与指令一起使用吗?这是个好主意吗?如果不是,为什么?” outsource.directive('dedicated', function(){ return { restrict: 'E', link: function(scope, element, attribute){ $("#klik").click(function(){

下面您可以看到我的指令代码

我的问题是:“我可以将jquery与指令一起使用吗?这是个好主意吗?如果不是,为什么?”

outsource.directive('dedicated', function(){

        return {
           restrict: 'E',
           link: function(scope, element, attribute){

                 $("#klik").click(function(){
                    alert('works');
                 });

           },

           replace: true,
           templateUrl: 'src/app/components/views/dedicated-prices.html'
        };
    });

这段代码很有效。

您不应该使用jquery,因为Angular本身有一个更轻的版本,称为jqlite

更多关于

因此,您的指令应该如下所示:

outsource.directive('dedicated', function(){

    return {
       restrict: 'E',
       link: function(scope, element, attribute){

             var elem = angular.element(document.querySelector('#klik'))
             angular.element(elem).triggerHandler('click');

       },

       replace: true,
       templateUrl: 'src/app/components/views/dedicated-prices.html'
    };
});

有趣的问题。在我的代码库中的一些指令/控制器中有一些jquery和元素选择

我总是觉得用它脏兮兮的,只在我真正需要的时候才这么做,不幸的是,它几乎总是一颗定时炸弹,导致我在接下来的几个月里诅咒自己,并重构以使用更具角度性的方法


最后再看一眼,看看是否有一种天生的有棱角的方式来做你想做的事情,你不会后悔的

简单回答:(只需在HTML页面中参考Angular.js上方的jquery.js即可。jqLite将被jquery替换)

您将使用jQuery进行DOM操作&关于这个主题有很多讨论(是否在现代浏览器中使用)。

最近流行的帖子之一是:


尽管如此,jQuery仍然是一个非常流行、使用率很高的DOM库。而且,它可以无缝地与许多现代UI框架配合使用。

这只取决于您希望从
jQuery
中“摆脱”多少。我在很多话题上看到过,人们更喜欢选择使用
AngularJS
jQuery
,但不是两者都使用。将
jQuery
添加到导演中“没有那么糟糕”(无论如何不是最佳选择),但它确实添加了另一个依赖项……您可以使用或。这应该不是一个问题,因此,选择jqLite或jquery取决于您。在互联网上有关于jqLite的更详细的文档或示例吗?或者是一本书?我建议第一站肯定是一本书。让我为你找到一些youtube链接谢谢你推荐这本书,我看到了内容,看起来很有用。再次感谢我昨天尝试使用jqlite,这很好,但是你不能做太多事情,比如使用jquery。。。。。您对此有何看法?Jquery是一个很好的Dom操作库。我使用它并不感到难受。而且,我工作的项目使用Jquery和angular.js这绝对是个坏主意,在angular工作了一年之后,这是个坏主意。。。。(将jquery与angular一起使用)仅当您需要某种在中找不到的滑块时angular@VeskoVujovic我从来没有这种感觉。我们在angular中广泛使用Jquery。Jquery只是视图的一部分。它可以无缝地工作。有一件事我不太鼓励,那就是使用Jquery-liek-Jquery-ui构建的ui元素,并将其包装为angular。在那里,我们需要弥合非角度代码和角度代码之间的差距。一切都可以在不使用jquery和角度应用程序的情况下完成。jqlite解决了所有问题。。。在1%中,您将需要使用jquery。我同意将jquery ui组件与Angular。。。