考虑以下ui-router设置:
的index.html
<div ui-view></div>
ui-router配置
$stateProvider
.state('search', {
abstract: true,
url: '/search',
views: {
'@': {
templateUrl: 'main.html'
}
}
})
.state('search.results', {
url: '/results',
views: {
...
},
resolve: {
data: function() {
...
}
}
})
当我导航到search.results
时,main.html
在resolve
解析之前不会呈现。{/ p>
ui-router是否有办法在之前呈现父视图 resolve
{{1}}?
答案 0 :(得分:4)
正如评论中所提到的,使用resolve的目的是防止在加载数据之前发生状态更改。您显然不希望出现这种行为,因为您希望在加载“数据”之前进入状态并呈现视图的一部分。解决方案是在控制器中加载“数据”而不是使用resolve。如果控制器中存在依赖于“数据”的逻辑,则只需将该逻辑移入回调中。