0

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

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

4

2 回答 2

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
                });
            }
        }
}]);
于 2013-10-07T15:05:15.920 回答
1

由于 Angular js 在引擎盖下使用 jqlite(jquery 的最小版本)作为选择器,因此在 angular js 中可能相同,但名称也不同。

参考: AngularJS DOM 选择器

于 2013-10-07T14:58:32.717 回答