2016-01-12 58 views
1

我一直在關注AngularJS的一些教程,我發現有多種方法來初始化Controller。AngularJS - 初始化控制器的正確語法是什麼?

例如,下面的代碼是基於AngularJS文檔:

angular.module('todoList', []) 
.controller('todoListCtrl', ['$scope', 
    function ($scope) { 
     ... 
    } 
]); 

然而,該代碼也可以工作:

angular.module('todoList', []) 
.controller('todoListCtrl', 
    function ($scope) { 
     ... 
    } 
); 

優於另一種方法?

回答

1

第二個語法不是小型化安全的。一旦縮小,uglifier將重命名爲$scope,這意味着它不能被AngularJS注入器正確注入,因爲注入器使用名稱匹配來確定要解析哪個依賴關係。

第一種語法是爲了解決這個問題而添加的,並且是您應該用於生產應用程序的語法。

+0

我從來沒有聽說過'uglifier'這個名字,這可能是我的前身 –

+0

Closure,Grunt/gulp包,RequireJS,Webpack的一些工具......它們都有一個「uglifier」,它將代碼庫重命名爲它緊湊。例如:https://www.npmjs.com/package/gulp-uglify –

相關問題