2014-09-27 73 views
2

我遵循ui-router wiki有关使用resolves的说明。如果我按照wiki上的说明操作,则可以将值分享给控制器而不会出现问题,如果通过引用包含控制器,则值未定义。我错过了什么?有角度的UI路由器解析数据得到undefined

.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 

回答

5

这是因为你没有在您的数组符号resA,它应该是这样的:

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

哦男人。谢谢。 – Jimi 2014-09-27 05:48:35

1

a working example

我们必须申报这个控制器,例如作为国家的一部分,DEF:

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

那么,我们要好好地传递参数(以下简称 '萨' 必须传递以及)

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

工作plunker