Я понимаю, как инъекция зависимостей Angular работает с директивами, но хочет что-то уточнить. У меня есть фиктивная тестовая директива:
app.directive("test", [
function() {
return {
restrict: "E",
scope: {},
controller: ["$scope", "$filter",
function($scope, $filter) {
var food = ["Apple pie", "Apple cobler", "Banana Split", "Cherry Pie", "Applesauce"];
$scope.favorites = $filter('filter')(food, "Apple");
}
],
template: "<div>{{favorites}}</div>"
}
}
]);
Это отлично работает и будет фильтровать массив food
, как и ожидалось. Однако я заметил, что если я введу службу $filter
в директиве следующим образом, она все равно работает:
app.directive("test", ["$filter",
function($filter) {
return {
restrict: "E",
scope: {},
controller: ["$scope",function($scope) {...
Мой вопрос: лучше ли внедрять службы в директиву в строке объявления так:
app.directive("test", ["$filter", function($filter) {
или в строке контроллера следующим образом:
controller: ["$scope", "$filter", function($scope, $filter) {
?
Нет ли разницы? Вот Plunker директивного кода.