4

无法理解如何在 Knockout 中最好地执行以下操作:

我正在将一个多页面服务器端应用程序移植到 Knockout,它在各个页面上执行许多不同的功能和数据,例如:

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

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

所有页面(在页眉和侧边栏中)都有通用数据,我希望它的行为类似于“单页”应用程序(部分之间有动画等)

在等待您的反馈之前,我认为最好的方法是:

  • 一个主模型,每个“页面”都有子模型
  • 适用于 header、sidebar 等的常见 observables
  • 指示“活动页面”和模板的可观察对象

例如:

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'

?

4

1 回答 1

1

这是 RNiemeyer 的一个例子,它回答了我的需要:

https://github.com/rniemeyer/SamplePresentation/tree/master/js

于 2012-09-10T06:06:51.370 回答