流畅的导航与knockout.js

时间:2012-08-09 08:34:37

标签: javascript knockout.js

我有一个包含三个子页面的单页应用程序。

网址结构是:

/page  (sub-page-0)

/page#sub-page-1

/page#sub-page-2

查看模型是:

function ViewModel(activePage){
   var self=this;

   self.activePage=ko.observable(activePage);
   self.changePage=function (newPage){
       self.activePage(newPage);
       //change url
   });
}

当用户输入url时,我想在javascript中获取#part并使用此参数构造ViewModel。

当用户点击页面中的链接时,我想更改URL并加载该子页面。

2 个答案:

答案 0 :(得分:5)

您可以使用堆栈溢出问题中的一个解决方案:How can I get query string values in JavaScript?

但是,我强烈建议您考虑使用客户端路由库。淘汰赛主页有example使用sammyjs,但还有许多其他有趣的解决方案(包括knockback,它结合了backbonejs和knockoutjs)。

答案 1 :(得分:3)

Knockout本身不支持导航。但是您可以使用第三方框架。来自http://learn.knockoutjs.com/的淘汰赛有一个名为“单页应用程序”的教程,该教程展示了如何使用sammy.js。