AngularJS指令中的元素与此相对

时间:2013-10-07 14:51:06

标签: jquery angularjs angularjs-directive

一旦jQuery被包含在Angular中,内部指令就可以自由地使用$(element)和$(this)进行DOM操作。

他们之间有什么区别?一个推荐超过另一个?它们可以互换吗?

2 个答案:

答案 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中也可以使用不同的名称相同。

参见: AngularJS DOM selector