这只是关于Angular指令的一般问题。为什么angular选择具有返回对象的函数而不仅仅直接将对象列为第二个参数?
换句话说,为什么它看起来像这样:app.directive('helloWorld', function() {
return {
restrict: 'AE',
replace: 'true',
template: '<h3>Hello World!!</h3>'
};
});
而不是这个:
app.directive('helloWorld',{
restrict: 'AE',
replace: 'true',
template: '<h3>Hello World!!</h3>'
});
答案 0 :(得分:5)
所以你可以注入依赖项
例如:
app.directive('helloWorld', function($rootScope) {
return {
restrict: 'AE',
replace: 'true',
template: '<h3>Hello World!!</h3>'
};
});
angular会将$ rootScope注入你的指令。
答案 1 :(得分:2)
因为当您实例化一个指令时,您需要一个新的实例。该函数将为您实例化一个新对象,而不是返回相同的对象。
此外,该功能也可用于依赖注入。
答案 2 :(得分:2)
我认为这是为了允许依赖注入ex。
.directive('someDirective', ['$filter', function ($filter) {
'use strict';
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
});
}
};
}]);