2015-01-26 61 views
2

我是AngularJS的新手。我試圖找出什麼這兩個控制器定義之間的區別:

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

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

我總是用第二個例子,但有時我看到使用了第一個例子中的人。我爲什麼要那麼做?第一個例子中的控制器是否繼承了另一個$ scope變量?

+0

第一個示例讓您縮小代碼。我不知道技術原因,雖然 – Ronnie 2015-01-26 18:55:16

+0

可能的重複 - http://stackoverflow.com/questions/18782324/angularjs-minify-best-practice – 2015-01-26 18:56:07

+0

@羅尼 - 這是因爲角從推薦的參數推斷依賴的身份構造函數。如果這些被縮小,那麼依賴注入器就無法解決依賴關係。 – 2015-01-26 18:57:24

回答

1

這兩個控制器定義完全相同。在第一個定義中,你明確地通過使用一個字符串來告訴Angular這個依賴的名字。這使您可以縮小代碼,因爲縮小器不會更改字符串的內容。

在第二個定義中,Angular通過查看參數名稱推斷注入哪些依賴項,因此縮小此代碼將會破壞它。

2

第一個例子

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

讓你minify代碼

minifer $範圍轉換爲可變a.but其身份至今仍保存在字符串。 如果您想稍後使用代碼minify,請使用第一個示例。

相關問題