在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' }; });
这个代码有效。
你不应该使用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' }; });
简单回答: 是 (简单地在HTML页面中引用Angular.js上面的jquery.js.jqLite将被jQuery取代)
您将使用jQuery进行DOM操作,并且有很多关于此主题的讨论(无论是否在现代浏览器中使用)。
最近一天的热门post之一: http ://lea.verou.me/2015/04/jquery-considered-harmful/
尽管如此,jQuery仍然是一个非常流行,高度使用的DOM库。 而且,它可以无缝地与许多现代UI框架协同工作。
有趣的问题。 我在代码库中的一些指令/控制器中有一些jquery元素选择。
我总觉得使用它并且只在我真正需要时才这样做,不幸的是它几乎总是一个定时炸弹并导致我在几个月后诅咒自己并重构使用更有棱角的方法。
最后一看,看看是否有一种原生的角度方式来做你想做的事情,你不会后悔的!