這兩個代碼段是不一樣的。
angular.module("app", []);
function Controller($scope, SomeService) {
// do stuff
}
Controller.$inject = ['$scope', 'SomeService'];
儘管它宣稱的app
模塊存在不加控制到模塊空間(namespace)app
。另外,我不認爲這個代碼會運行。請參閱下文了解如何使用這種注射方式。
angular.module("app", [])
.controller("Controller", [ '$scope', 'Service' function($scope, SomeService){
// do stuff
}]);
第二種形式使用速記.controller()
方法來創建所述控制器和注入的資源。然後您可以將angular.module('app')
拉到指定控制器的引用。
手動注入到控制器中遵循這個風格:
angular.module('app', [])
.factory('someService', function($window) {
return {
serve: function(text) {
$window.alert(text);
}
};
});
var injector = angular.injector(['app', 'ng']);
function Controller($scope, someService) {
$scope.doStuff = function() {
someService.serve('Doing stuff');
};
}
injector.instantiate(Controller);
對於一個完整的示例,請參閱:http://docs.angularjs.org/guide/di
@musically_ut - 感謝 - 這是一個錯字 – Iladarsda