我正在使用热毛巾模板,我正在尝试了解如何通过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按钮,但实际内容仍然显示应用程序:
如果我想导航到另一个页面而不点击顶部的导航栏,应该怎么做?
答案 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;
}
此外,您的应用程序的性能也会得到提升
祝你好运。