我正在学习AngularJS DI概念,有谁能告诉我为什么下面的代码无效?
<script type="text/javascript">
var myApp = angular.module('myApp',[])
var myController = myApp.controller('MyController', function(a){
a.name = 'william'
console.log(a.name)
})
myController.$inject = ['$scope']
</script>
我收到的错误为:https://docs.angularjs.org/error/$injector/unpr?p0=aProvider%20%3C-%20a
在上面的代码中,代替'a',如果用'$ scope'替换,它绝对有效。据我所知,angular应该将$ scope注入'a'参数,对吗?
答案 0 :(得分:1)
$inject
,而不是在模块上定义:
var ctrl = function(a) { ... };
ctrl.$inject = ['$scope'];
myApp.controller('MyController', ctrl);
但我强烈建议你
a
答案 1 :(得分:0)
$inject
应该在控制器功能上:
var myApp = angular.module('myApp',[])
myApp.controller('MyController', function myController(a){
a.name = 'william'
console.log(a.name)
})
myController.$inject = ['$scope']