愉快的夜晚!在我的Aurelia-App中,我使用viewModel通过navigationStrategy处理各种视图(读取路径参数并相应地设置视图)。Aurelia在导航时不'刷新'vm
导航的运作baiscally好,然而有一个问题:
当我一直是基于同一个视图模型之间的路线导航,视图模型不“刷新”。只有在首先导航到具有不同viewModel的不同路线,然后返回到预定路线时,才会按预期显示内容。
看起来组件的生命周期钩子没有踢入。有什么办法可以手动触发unbind()和detached()吗?还是有更好的方式来做一般的事情?
此外路由配置似乎有点奇怪。当我拿走moduleId时,应用程序崩溃,当我拿走layoutViewModel时,数据未绑定到视图。我现在的解决方法是分配一个空的viewModel +一个空模板。我使用这个错误吗?
非常感谢!
configureRouter(config, Router) {
var getModelStrat = (instruction) => {
instruction.config.layoutView = "pages/templates/"+instruction.params.model+".html"
}
config.addAuthorizeStep(AuthorizeStep);
config.title = 'Aurelia';
config.map([
{
route: 'detail/:model/:id?',
name: 'detail',
moduleId: 'pages/empty',
layoutViewModel: 'pages/detail',
auth: true,
navigationStrategy: getModelStrat
},
{...}
]);
}