2015-01-26 2 views
2

Я новичок в AngularJS. Я пытаюсь выяснить, чем разница между этими двумя определениями контроллера:

app.controller('simpleController', ['$scope', function($scope) { 
}]); 

app.controller('simpleController', function($scope) { 
}); 

Я всегда использую второй пример, но иногда я вижу людей, использующих первый пример. Почему я должен делать это? Контроллер в первом примере наследует другую переменную $ scope?

+0

Первый пример позволяет вам минимизировать код. Я не знаю технической причины, но – Ronnie

+0

Возможный дубликат - http://stackoverflow.com/questions/18782324/angularjs-minify-best-practice –

+0

@Ronnie - это потому, что угловой передает идентификаторы зависимостей из параметров, предоставленных конструктор. Если эти параметры будут уменьшены, инжекторы зависимостей не смогут выработать зависимости. –

ответ

1

Эти два определения контроллера выполняют то же самое. В первом определении вы явно указываете Angular имя зависимости через использование строки. Это позволяет вам минимизировать код, поскольку министры не меняют содержимое строк.

Во втором определении Угловая информация о том, какую зависимость вводить, глядя на имя параметра и, таким образом, уменьшая этот код, сломает его.

2

Первый пример

app.controller('simpleController', ['$scope', function($scope) { 
}]); 

позволяет Вам minify код

minifer преобразующий $ простор переменной a.but его личность до сих пор сохраняется в строках. поэтому используйте первый пример если желаете minify ваш код позже.