Cân nhắc đoạn mã này từ AngularJS by Brad Green.Tại sao họ vượt qua các mảng trên AngularJS?
var directives = angular.module('guthub.directives', []);
directives.directive('butterbar', ['$rootScope',
function ($rootScope) {
return {
link: function (scope, element, attrs) {
element.addClass('hide');
$rootScope.$on('$routeChangeStart', function() {
element.removeClass('hide');
});
$rootScope.$on('$routeChangeSuccess', function() {
element.addClass('hide');
});
}
};
}]
);
directives.directive('focus', function() {
return {
link: function (scope, element, attrs) {
element[0].focus();
}
};
});
Chú ý rằng đối với "butterbar" chỉ thị ông đi trong một mảng nơi mục đầu tiên chỉ là một chuỗi với tên phụ thuộc "$rootScope"
, và mục thứ hai là một hàm. Hàm đó khai báo sự phụ thuộc vào $rootScope
. Tại sao chúng ta lặp lại chính mình ở đây? Đặc biệt khi có vẻ như chỉ có thể thực hiện điều này:
directives.directive('butterbar', function ($rootScope) {
return {
link: function (scope, element, attrs) {
element.addClass('hide');
$rootScope.$on('$routeChangeStart', function() {
element.removeClass('hide');
});
$rootScope.$on('$routeChangeSuccess', function() {
element.addClass('hide');
});
}
};
});
Tôi đoán rằng tên phụ thuộc là chuỗi có ý nghĩa quan trọng. Bất cứ ai có thể cho tôi biết lý do tại sao họ làm điều này trong suốt cuốn sách (và không chỉ cho các chỉ thị)?
Tiêm phụ thuộc và giảm thiểu. – elclanrs
Bốn từ rõ ràng :) – Chev