Knockout.js-每页有多个ViewModels;具有不同模型上下文的页面范围函数

Knockout.js-每页有多个ViewModels;具有不同模型上下文的页面范围函数,knockout.js,knockout-2.0,Knockout.js,Knockout 2.0,我正在构建一个巨大的页面,上面有多个表单,用户将按顺序填写 我想让每个部分都有自己的模型,并计划使用masterViewModel导入子模型 但是,每个部分都有具有相同功能的编辑和保存按钮: 编辑将模型切换到编辑模式 Save验证输入,保存数据(通过ajax),并切换回模型的状态 按钮集之间的唯一区别是它们的模型上下文 我在使用masterViewModel/subViewModels创建可以引用不同模型的页面级保存和编辑功能时遇到问题 有人对此有任何指导吗 谢谢。如果您的根视图模型上有一个函数

我正在构建一个巨大的页面,上面有多个表单,用户将按顺序填写

我想让每个部分都有自己的模型,并计划使用masterViewModel导入子模型

但是,每个部分都有具有相同功能的编辑和保存按钮:

  • 编辑将模型切换到编辑模式
  • Save验证输入,保存数据(通过ajax),并切换回模型的状态
  • 按钮集之间的唯一区别是它们的模型上下文

    我在使用masterViewModel/subViewModels创建可以引用不同模型的页面级保存和编辑功能时遇到问题

    有人对此有任何指导吗


    谢谢。

    如果您的根视图模型上有一个函数,那么您可以在任何地方调用它,比如
    单击:$root.save

    当Knockout调用函数时,它会将上下文(this)设置为当前数据,并将其作为第一个参数传递。因此,第一个参数将包含您当前的模型,您可以从那里处理它

    以下是一个示例:

    使用如下标记:

    <div data-bind="with: one">
        <input data-bind="value: name" />
        <button data-bind="click: $root.save">Save</button>
    </div>
    
    <div data-bind="with: two">
        <input data-bind="value: name" />
        <button data-bind="click: $root.save">Save</button>
    </div>
    
    
    拯救
    拯救
    
    <div data-bind="with: one">
        <input data-bind="value: name" />
        <button data-bind="click: $root.save">Save</button>
    </div>
    
    <div data-bind="with: two">
        <input data-bind="value: name" />
        <button data-bind="click: $root.save">Save</button>
    </div>