Durandal导航问题

时间:2013-09-08 02:01:30

标签: javascript durandal hottowel

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

enter image description here

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

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

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

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

enter image description here

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

1 个答案:

答案 0 :(得分:2)

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

但是当调用激活方法时,durandal正在完成许多繁重的任务,为时已晚

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

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

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

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

祝你好运。