1

我面临一个奇怪的问题。我已经设置了多条路径,它们命中相同的视图/视图模型,但过滤方式不同。例如:

       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();
}

最后,在同一个虚拟机中,我有点击选项卡时的事件(即将到来、全部、存档),在视图之间切换:

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() 函数在允许激活函数返回之前等待多个承诺完成。

这可行,但是当我单击选项卡时,视图会立即加载,然后发生转换并再次加载视图,从而产生非常生涩的效果。有任何想法吗?

4

0 回答 0