【发布时间】:2015-08-29 16:46:36
【问题描述】:
在 ui-router 中,当状态发生变化时,它应该调用其所有父级解析。这在第一次状态更改时起作用。但是对于 第二次 时间,父级的解析不会被调用(可能是因为它们之前已经解析过)。
这是状态配置
var app = angular.module('plunker', ['ui.router']);
app.config(function($stateProvider) {
$stateProvider
.state('root', {
abstract: true,
resolve: {
preloadData: function() {
console.log("preloadData");
return true;
}
}
})
.state('root.home', {
resolve: {
test: function() {
console.log('Home')
return true;
}
}
})
.state('root.login', {
resolve: {
test: function() {
console.log('Login')
return true;
}
}
});
});
这里是 plnkr http://plnkr.co/edit/rMVbxErZyStt97JifJlj。打开开发控制台并单击按钮。您会看到 preloadData 仅在第一次状态更改时被调用。对于未来的状态变化,它不会被调用。
这种行为是有意的/正常的吗?有没有办法在每次状态更改时强制调用父级的解析?
【问题讨论】:
标签: javascript angularjs angular-ui-router