问题 在AngularJS指令里面使用Jquery有什么好主意?


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

我的问题是:“我可以使用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'
        };
    });

P.s这段代码有效。


7727
2018-06-03 09:26


起源

这取决于你想要“远离”多少 jQuery。我在许多SO主题上看到人们更喜欢选择使用 AngularJS  要么  jQuery但不是两者兼而有之。添加 jQuery 导演是“不是那么糟糕”(不是最好的选择)但它确实增加了另一种依赖... - Jovan Perovic


答案:


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

更多文档 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'
    };
});

6
2018-06-03 09:31



你可以使用或。它应该不是问题,因此如果您选择jqLit​​e或jQuery,这取决于您 - Lau
有关于互联网上jqlite的更详细的文档或示例吗?或者也许是一本书? - Vesko Vujovic
ng-book绝对是我建议的第一站。让我为你找一些youtube链接 - V31
youtube链接: youtube.com/watch?v=kOtXHs1EISw - V31
感谢您对本书的推荐,我看到了内容,看起来非常有用。再一次感谢 - Vesko Vujovic


简单回答:  (简单地在HTML页面中引用Angular.js上方的jquery.js.jqLit​​e将被jQuery取代)

您将使用jQuery进行DOM操作,并且有很多关于此主题的讨论(无论是否在现代浏览器中使用)。

最近一天的热门帖子之一: http://lea.verou.me/2015/04/jquery-considered-harmful/

尽管如此,jQuery仍然是一个非常流行,高度使用的DOM库。而且,它可以无缝地与许多现代UI框架协同工作。


2
2018-06-03 09:59



好主意还是坏主意? - technophyle
Jquery是Dom操作的好库。使用它我感觉不好。而且,我工作的项目正在使用Jquery和angular.js - Navaneeth
这绝对是个坏主意,经过一年的Angular经验,这是一个糟糕的坏主意....(只使用角度有点jquery)只有当你需要某种你在角度找不到的滑块时 - Vesko Vujovic
@VeskoVujovic我从没感觉到过。我们广泛使用Jquery和angular。 Jquery只是视图的一部分。它无缝地工作。我不鼓励的一件事是使用用Jquery liek Jquery ui构建的ui元素和包装角度的东西。我们需要弥合非角度代码和角度代码之间的差距 - Navaneeth
一切都可以在不使用jquery和角度应用程序的情况下完成jqlite解决所有问题...在1%中你需要使用jquery。我同意在Angular中使用jquery ui compoents ... - Vesko Vujovic


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

我总觉得使用它并且只在我真正需要时才这样做,不幸的是它几乎总是一个定时炸弹并导致我在几个月后诅咒自己并重构使用更有棱角的方法。

最后一看,看看是否有一种原生的角度方式来做你想做的事情,你不会后悔的!


1
2018-06-03 09:43