angularjs依赖注入$ scope不工作

时间:2017-04-30 16:16:20

标签: angularjs

我正在学习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'参数,对吗?

2 个答案:

答案 0 :(得分:1)

必须在控制器上定义

$inject,而不是在模块上定义:

var ctrl = function(a) { ... };
ctrl.$inject = ['$scope'];
myApp.controller('MyController', ctrl);

但我强烈建议你

  • 为您的变量使用$ scope而不是a
  • ng-annotate自动将代码转换为可缩小的代码。

答案 1 :(得分:0)

$inject应该在控制器功能上:

    var myApp = angular.module('myApp',[])

    myApp.controller('MyController', function myController(a){
        a.name = 'william'
        console.log(a.name)
    })

    myController.$inject = ['$scope']