【问题标题】:Knockout.js - multiple "pages", switching models?Knockout.js - 多个“页面”,切换模型?
【发布时间】:2012-08-22 08:36:08
【问题描述】:

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

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

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

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

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

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

  • 一个主模型,每个“页面”都有子模型
  • 适用于页眉、侧边栏等的常见 observables
  • 指示“活动页面”和模板的 observable

例如:

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'

?

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    这里有一个来自 RNiemeyer 的例子,它回答了我的需要:

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

    【讨论】:

    • 最近的另一个选择是使用Durandal,这是在 Knockout 应用程序中管理此问题的绝佳框架。
    • 这应该是一个答案,而不仅仅是评论。差点错过了。
    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2012-12-12
    • 2015-07-16
    • 1970-01-01
    相关资源
    最近更新 更多