2014-09-27 133 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