2012-08-27 23 views
4

唔明如何最好地做淘汰赛如下:Knockout.js - 多个“页面”,切换模型?

我移植一个多页的服务器端应用淘汰赛,它做了很多不同的功能,并在不同的页面数据,例如:

  • 列表中的所有用户
  • 查看用户页面
  • 编辑用户页面
  • 您的帐户设置

这些不同的页面显示在每个页面的主要部分,具有共同的页眉,侧边栏和页脚。

有在所有页面(在头和边栏)常见的数据,我想这像一个“单页”应用程序(与段之间的动画等等)

待您的反馈意见,我“M想最好的办法是将有:

  • 一个主要模式,与子模型为每个页面“
  • 共同观测适用于头,侧边栏等
  • 可观察到的指示”活动页面“和模板

例如:

var MainModel = { 
    listUsersModel: { ... }, 
    userModel: { ... }, 
    accountModel: { ... }, 
    commonProperty: ko.observable('Blah'), 
    anotherCommonProperty: ko.observable('Blah'), 
    activeSection: ko.observable('listUsers') 

}

虽然我认为这会工作,我有点模糊如何“切换页面”,并更新新的页面与新服务器模型边数据。

是做到这一点的东西是最好的/唯一途径:

MainModel.userModel.userId(123456) 
// userModel above subscribes to userId changes, to get new server via ajax 
MainModel.activeSection = 'viewUser' 

回答