2014-02-10 41 views
0

对Durandal 2.0.1使用HTML Starter Kit示例。应该Durandal网址哈希包含ID?

如果我为客户/:使用我自己的虚拟机和视图添加路由,我可以导航到页面c://temp/index.html#customer/123,页面显示和激活时,我可以看到参数为123.但是,该页面的散列显示为customer /:id路由器是否应自动更新这些散列以包含任何传递的参数,或者这是我必须自己做的事情?

+0

确保通过Web服务器运行该示例,而不是从文件系统运行该示例。 – RainerAtSpirit

+0

同样的事情发生。当我创建路由时,我已经设置了nav:true,所以当它显示在shell标签中时,哈希值是#customer /:id,它反映了我所要求的内容。我认为这个问题是我想要动态创建的标签,因为我去#customer/123,而我没有得到它们。看到问题http://stackoverflow.com/questions/21677597/how-to-dynamically-display-tabs-for-routes-in-durandal –

+0

看起来像我想念你的问题。发布您的路由器配置,视图和视图模型。请解释一下你期望在这些地方发生的事情,以及发生的后果。 – RainerAtSpirit

回答

0

可能有一个解决这个问题的方法,但如果您打算使用散列并且您有Id或可选的Id内容,那么您可以使用此辅助程序进行导航并清理散列,如果需要 -

function changeRoute(route) { 
    var cleanRoute = route.hash; 
    if (cleanRoute.indexOf(':id') !== -1) { 
     cleanRoute = cleanRoute.replace(':id', ''); 
    } 
    return router.navigate('#' + thisRoute); 
} 

或者您可以轻松地添加一个额外的路径设置作为清理哈希。