我面临一个奇怪的问题。我设置了多个匹配相同视图/视图模型的路由,但过滤方式不同。 E.g:
router.mapNav('main/upcoming', 'viewmodels/items');
router.mapNav('main/all', 'viewmodels/items');
router.mapNav('main/archived', 'viewmodels/items');
路由工作正常,在vm activate函数中,我正在进行过滤以显示相应的项目:
function activate(r) {
switch (r.routeInfo.url) {
case 'main/upcoming': vm.filterType(1); break;
case 'main/all': vm.filterType(2); break;
case 'main/archived': vm.filterType(3); break;
}
return init();
}
最后,在同一个vm中,我有点击标签的时间(Upcoming,All,Archived),在视图之间切换:
function toggleUpcoming() {
//vm.filterType(1);
router.navigateTo('#/main/upcoming');
}
function toggleAll() {
//vm.filterType(2);
router.navigateTo('#/main/all');
}
function toggleArchived() {
//vm.filterType(3);
router.navigateTo('#/main/archived');
}
init()函数在允许activate函数返回之前等待多个promises完成。
这样可行,但是当我单击选项卡时,视图会立即加载,然后发生转换并再次加载视图,从而产生非常不稳定的效果。有什么想法吗?