AngularJs依赖注入差异

时间:2017-08-01 18:20:28

标签: angularjs dependency-injection

阵列是否必要?

   app.controller('myController', ['$scope', function($scope){

}])

这会像上面的代码一样工作吗?

   app.controller('myController', function($scope){

})

2 个答案:

答案 0 :(得分:1)

是的,它会以同样的方式运作,它只是区别。你需要使用 explicit 依赖注入(第二种方式)。

即使你缩小它将$ scope转换为变量a和$ http转换为变量b,它们的身份仍然保留在字符串中。

答案 1 :(得分:1)

数组始终是必需的,但不必将其组合到控制器定义中。有一种更清洁的方法,这是我的首选方法。我所做的是以功能的方式创建控制器。例如:

app.controller('myController', MyController);

//dependency injection done here using the array of definitions
MyController.$inject = ['$scope'];

//all of the dependencies are added as parameters into the controller function
function MyController ($scope) {
   //insert controller code
}

正如Sajeetharan的回答所指出的,这被称为显式方法。您应该查看Angular 1团队认可的this style guide,了解有助于使代码更清晰,更易于维护的其他模式