【发布时间】:2015-09-19 21:20:26
【问题描述】:
我发现在 knockout.js 中谈论多个视图模型时通常会有些混淆
ko 文档并没有真正解释如何处理多个视图模型、如何在它们之间进行通信或何时应该考虑它们。
我发现this site 解释了创建多个视图模型的不同方法以及如何与它们交互。
我试了一下,我用不同的子模型创建了一个主模型:
var MasterModel = function(){
this.orders = new ordersViewModel(),
this.dates = new datesViewModel(),
this.equipment = new equipmentViewModel();
};
在那之后,我发现自己不得不在很多地方使用with: nameOfModel(并为其创建额外的包装器或HTML cmets),甚至只使用视图模型的名称作为前缀data-bind="foreach: orders.getList()"。
除此之外,还有它们之间的通信问题,虽然可以通过某种方式解决,但似乎不像处理单个视图模型那么简单。
我的问题是,是否值得创建多个视图模型?如果是,什么时候?似乎它只会增加更多的困难,而我最终并没有看到它的优势。 (是的,他们说它保持模块化......但我最终没有看到明显的优势)
【问题讨论】:
标签: knockout.js knockout-3.0 knockout-3.2