2014-12-16 4 views

ответ

1

Оба образца имеют вложенную зависимость объема, в отличие от первой, используется нотация массива, которая позволяет создавать пользовательские имена, не прерываться при их измельчении и т. Д. Это рекомендуемый способ. Например, это работает отлично:

myApp.controller('GreetingController',  ['$scope', function(myScopeAlias) { 
    myScopeAlias.greeting = 'Hola!'; 
}]); 

в действии здесь:

angular.module('test', []) 
 
    .controller('GreetingController', ['$scope', function(myScopeAlias) { 
 
     myScopeAlias.greeting = 'Hola!'; 
 
    }]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="test" ng-controller="GreetingController">{{greeting}}</div>


Dependency Аннотация

Угловой вызывает определенные функции (например, сервисные заводы и контроллеры) через инжектор. Вам необходимо аннотировать эти функции, чтобы инжектор знал, какие услуги нужно вводить в функцию. Есть три способа аннотирования кода с информацией имени службы:

  • Использованием аннотаций рядного массива (предпочтительно)
  • Использованием $ впрыснуть свойства аннотации
  • Косвенно из имен параметров функции (имеют предостережения)

подробнее: https://docs.angularjs.org/guide/di#dependency-annotation

+0

Обратите внимание, что в строгом режиме DI (который включен путем добавления 'нг-строгий di' директивы на тот же элемент, как нг-приложение) Угловые выдает сообщение об ошибке, когда служба пытается использовать неявную аннотацию внедрение зависимости. –

+0

@joelkornbluh Да, это в ссылке «Подробнее», которую я предоставил. Не хотел слишком много цитировать. – Shomz

0

Я просто хочу внимания один POIN t:

Всегда использовать аннотацию встроенного массива, если вы планируете выполнить Uglification (для большинства реальных проектов требуется уклонение).

Building minification-safe Angular.js applications

Смежные вопросы