我在想我的应用程序现在变得非常大,太大而无法使用单个 ViewModel 处理每个视图。
所以我想知道创建多个 ViewModel 并将它们全部加载到一个 View 中会有多困难。需要注意的是,我还需要能够将 X ViewModel 数据传递到 Y ViewModel 数据中,因此各个 ViewModel 需要能够相互通信或至少相互了解。
例如,我有一个<select>下拉菜单,该选择下拉菜单有一个选择状态,它允许我将所选项目的 ID 传递<select>给单独 ViewModel 中的另一个 Ajax 调用…。
<select>
在单个视图中处理多个 ViewModel 的任何要点表示赞赏:)
Knockout 现在支持多个模型绑定。该ko.applyBindings()方法采用可选参数 - 将激活绑定的元素及其后代。
ko.applyBindings()
例如:
ko.applyBindings(myViewModel, document.getElementById('someElementId'))
这将激活限制为具有 ID 的元素someElementId及其后代。
someElementId
有关更多详细信息,请参阅文档。