一旦jQuery被包含在Angular中,内部指令就可以自由地使用$(element)和$(this)进行DOM操作。
他们之间有什么区别?一个推荐超过另一个?它们可以互换吗?
答案 0 :(得分:3)
$(this)
将取决于正在执行的方法的上下文,$(element)
将始终引用附加到的指令。
这是一个人为的例子
module.directive('myDirective', [function() {
return {
template: '<div><button id="btn">Click Me</button></div>',
restrict: 'E',
link: function(scope, element, attrs, controller) {
$("#btn").on('click', function() {
// $(this) != $(element)
// $(this) is the button element from the template
// $(element) is the directive element
});
}
}
}]);
答案 1 :(得分:1)
由于角度js在选择器的引擎盖下使用jqlite(jquery的最小版本),因此在角度js中也可以使用不同的名称相同。