我是AngularJS的新手。我試圖找出什麼這兩個控制器定義之間的區別:
app.controller('simpleController', ['$scope', function($scope) {
}]);
app.controller('simpleController', function($scope) {
});
我總是用第二個例子,但有時我看到使用了第一個例子中的人。我爲什麼要那麼做?第一個例子中的控制器是否繼承了另一個$ scope變量?
我是AngularJS的新手。我試圖找出什麼這兩個控制器定義之間的區別:
app.controller('simpleController', ['$scope', function($scope) {
}]);
app.controller('simpleController', function($scope) {
});
我總是用第二個例子,但有時我看到使用了第一個例子中的人。我爲什麼要那麼做?第一個例子中的控制器是否繼承了另一個$ scope變量?
這兩個控制器定義完全相同。在第一個定義中,你明確地通過使用一個字符串來告訴Angular這個依賴的名字。這使您可以縮小代碼,因爲縮小器不會更改字符串的內容。
在第二個定義中,Angular通過查看參數名稱推斷注入哪些依賴項,因此縮小此代碼將會破壞它。
第一個例子
app.controller('simpleController', ['$scope', function($scope) {
}]);
讓你minify
代碼
minifer
$範圍轉換爲可變a.but其身份至今仍保存在字符串。 如果您想稍後使用代碼minify
,請使用第一個示例。
第一個示例讓您縮小代碼。我不知道技術原因,雖然 – Ronnie 2015-01-26 18:55:16
可能的重複 - http://stackoverflow.com/questions/18782324/angularjs-minify-best-practice – 2015-01-26 18:56:07
@羅尼 - 這是因爲角從推薦的參數推斷依賴的身份構造函數。如果這些被縮小,那麼依賴注入器就無法解決依賴關係。 – 2015-01-26 18:57:24