3

我正在使用热毛巾模板,并且试图了解如何通过 javascript 调用导航到不同的视图。当我的页面加载时,它看起来像这样:

在此处输入图像描述

然后,如果我单击任何其他按钮,然后再次单击应用程序按钮,我编写了一些测试代码以将用户带到 ping 页面。这是在应用程序视图模型中:

function activate() {
    if (initialized) { router.navigateTo("#/ping"); return; }

    // more code here (doesn't get hit the second time through)
}

但是发生的情况是 URL 是正确的 ping URL,并且选择了 ping 按钮,但实际内容仍然显示应用程序:

在此处输入图像描述

如果我想导航到另一个页面而不单击顶部的导航栏,应该怎么做?

4

1 回答 1

2

您的 'router.navigateTo('#/ping') 是正确的。

但是当调用activate方法时,durandal正在完成大量繁重的任务,为时已晚

你的命令,如果你想阻止打开一个页面,而不是你想去

另一个页面,然后您可以使用“CanActivate”方法,如下所示:

function canActivate() {
    if (initialized) { router.navigateTo("#/ping"); return false; 
                                         /* return false to prevent opening a page */ }
    else return true;
}

您的应用程序的性能也会得到提升

祝你好运。

于 2013-09-08T02:32:25.093 回答