角度UI路由器解析数据未定义

时间:2014-09-27 05:40:21

标签: javascript angularjs

我正在按照ui-router wiki上与解决方案相关的说明进行操作。如果我按照维基上的说明操作,我会在没有问题的情况下获得共享给控制器的值,如果我通过引用包含控制器,则值是未定义的。我错过了什么?

.state('intro', {
            url: '/',
            resolve:{
                resA:  function(){
                    return {'value': 'A'};
                }
            },
        views: {
            'content': {
                templateUrl: 'views/home.html',
                controller: function($scope, resA){
                  $scope.resA = resA.value;
                }
            },
            'navigation': {
                templateUrl: 'views/navigation.html'

            }

        } })

    .controller('introController', ['$scope', function($scope,resA) {
    $scope.resA = resA.value; //undefined

2 个答案:

答案 0 :(得分:5)

这是因为您没有在数组表示法中包含resA,它应该是这样的:

.controller('introController', ['$scope', 'resA', function($scope, resA) {
    $scope.resA = resA.value;
}]);

答案 1 :(得分:1)

a working example

我们必须声明这个控制器,例如作为国家def的一部分:

'navigation': {
     template: '<div>navi - resA: {{resA}}</div>',
     controller: 'introController',
},

然后我们必须正确传递参数(&#39; resA&#39;也必须传递)

 .controller('introController', ['$scope', 'resA'
 , function($scope,resA) {
    $scope.resA = resA.value; //undefined
 }])
;

工作plunker