我正在按照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
答案 0 :(得分:5)
这是因为您没有在数组表示法中包含resA
,它应该是这样的:
.controller('introController', ['$scope', 'resA', function($scope, resA) {
$scope.resA = resA.value;
}]);
答案 1 :(得分:1)
我们必须声明这个控制器,例如作为国家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