为什么angular.element常用而不注射?

时间:2014-09-30 18:18:02

标签: javascript angularjs dependency-injection

在Angular中如果人们想在他们的控制器/指令中使用某种类型的库,他们会使用依赖注入,如:

app.directive('myDirective', ['$rootScope', function($rootScope) {
    //stuff here
});

但我注意到在angular.element的情况下 - 它仅在全局命名空间中使用:

app.directive('myDirective', function() {
    angular.element.find('body').html('Hello world!');
});

这对我来说似乎很奇怪,是推荐练习吗?

1 个答案:

答案 0 :(得分:1)

这是一个辅助方法,它存在于实际的angular框架本身上。

非常像angular.extendangular.module

创建模块非常困难,不直接引用角度。 为此,非常有用的辅助方法扩展到angular,而不是需要第三方库。

那就是说,除非你是指令或非常特殊的服务,否则你不想使用angular.element;虽然它很常见,但它通常是来自使用jQuery的人的保留,并且不愿意找到构建控制器/窗口小部件等的更好方法,因此Angular的数据绑定几乎可以为您完成所有DOM工作