Betrachten Sie dieses Schnipsel von AngularJS by Brad Green. Warum übergeben sie Arrays in 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();
}
};
});
Beachten Sie, dass für die „Butterbar“ Richtlinie er in einem Array übergibt, wo das erste Element ist nur eine Zeichenfolge mit dem Beziehungsnamen "$rootScope"
, und das zweite Element ist eine Funktion. Diese Funktion deklariert eine Abhängigkeit von $rootScope
. Warum wiederholen wir uns hier? Vor allem, wenn es möglich zu sein scheint gerade dies zu tun:
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');
});
}
};
});
Ich vermute, dass der Beziehungsname ein String ist eine Art von Bedeutung. Kann mir jemand sagen, warum sie das im ganzen Buch machen (und nicht nur für Anweisungen)?
Abhängigkeitsinjektion vs Minification. – elclanrs
Vier Worte der Klarheit :) – Chev