Angular-ui 状态 - 多个视图看不到我的解析数据
Angular-ui State - Multiple views not seeing my resolve data
出于某种原因,当使用多个命名视图(angular-ui ui-路由器时,我的 resolvedData 未被控制器看到。有人遇到过这个问题吗?
$stateProvider
.state('page',{
abstract: true,
templateUrl: ...,
controller: abstractController
})
.state('page.index',
url: '/page',
resolve : {
resolvedData: function(CONSTANTS){ return CONSTANTS.data;}
},
views: {
home: {templateUrl: ...,
controller: function(resolvedData){
....
}
},
list: {templateUrl: ...,
controller: function(resolvedData){
....
}
},
edit: {templateUrl: ...,
controller: function(resolvedData){
....
}
}
}
)
它给我的错误是:错误:[$injector:unpr] 未知提供者:resolvedDataProvider <- resolvedData。这在某种程度上很有趣,因为它只发生在其中一个视图中,而不会出现在其他视图中。
我创建了 small working example,表明你的东西应该可以工作
这将是常量:
.factory('CONSTANTS', function() {
return { data: { name : "some name", number : "some number"} };
})
和相同的(只是明确注释的 DI)状态 def:
// States
$stateProvider
.state('page', {
abstract: true,
template: '<div>'
+ '<div ui-view="home"></div>'
+ '<div ui-view="list"></div></div>',
controller: 'abstractController'
})
.state('page.index', {
url: '/page',
resolve: {
resolvedData: ['CONSTANTS',
function(CONSTANTS) {
return CONSTANTS.data;
}
]
},
views: {
home: {
templateUrl: 'tpl.html',
controller: ['resolvedData','$scope',
function(resolvedData, $scope) {
console.log(resolvedData);
$scope.resolvedData = resolvedData;
}
],
},
list: {
template: '<div>list view</div>'
}
}
})
所以,上面使用的决议草案是有效的。这是正确的方法...解析功能由一些服务提供...并且 returns 其 属性 data
。
检查所有 here
出于某种原因,当使用多个命名视图(angular-ui ui-路由器时,我的 resolvedData 未被控制器看到。有人遇到过这个问题吗?
$stateProvider
.state('page',{
abstract: true,
templateUrl: ...,
controller: abstractController
})
.state('page.index',
url: '/page',
resolve : {
resolvedData: function(CONSTANTS){ return CONSTANTS.data;}
},
views: {
home: {templateUrl: ...,
controller: function(resolvedData){
....
}
},
list: {templateUrl: ...,
controller: function(resolvedData){
....
}
},
edit: {templateUrl: ...,
controller: function(resolvedData){
....
}
}
}
)
它给我的错误是:错误:[$injector:unpr] 未知提供者:resolvedDataProvider <- resolvedData。这在某种程度上很有趣,因为它只发生在其中一个视图中,而不会出现在其他视图中。
我创建了 small working example,表明你的东西应该可以工作
这将是常量:
.factory('CONSTANTS', function() {
return { data: { name : "some name", number : "some number"} };
})
和相同的(只是明确注释的 DI)状态 def:
// States
$stateProvider
.state('page', {
abstract: true,
template: '<div>'
+ '<div ui-view="home"></div>'
+ '<div ui-view="list"></div></div>',
controller: 'abstractController'
})
.state('page.index', {
url: '/page',
resolve: {
resolvedData: ['CONSTANTS',
function(CONSTANTS) {
return CONSTANTS.data;
}
]
},
views: {
home: {
templateUrl: 'tpl.html',
controller: ['resolvedData','$scope',
function(resolvedData, $scope) {
console.log(resolvedData);
$scope.resolvedData = resolvedData;
}
],
},
list: {
template: '<div>list view</div>'
}
}
})
所以,上面使用的决议草案是有效的。这是正确的方法...解析功能由一些服务提供...并且 returns 其 属性 data
。
检查所有 here