Data binding knockout.js-跨相关视图广播数据

Data binding knockout.js-跨相关视图广播数据,data-binding,knockout.js,Data Binding,Knockout.js,我目前正在进行一项练习,研究许多JS MV*框架,并选择一个最适合团队需要的框架。淘汰赛是我正在学习的竞争者之一 最重要的要求之一是将视图模型中数据的更改广播给使用这些数据的所有视图。例如,假设我们在页面的数据网格中列出了客户机详细信息,单击数据网格中的任何一行会弹出一个对话框,用户可以在其中编辑所选行的值。当进行更改并且用户单击“保存”时,数据库中的数据将更新。但我们还希望在本地ko.observearray中反映出更改,然后针对使用此“客户机”集合的任何其他视图使用新数据刷新自己。换句话说,

我目前正在进行一项练习,研究许多JS MV*框架,并选择一个最适合团队需要的框架。淘汰赛是我正在学习的竞争者之一

最重要的要求之一是将视图模型中数据的更改广播给使用这些数据的所有视图。例如,假设我们在页面的数据网格中列出了客户机详细信息,单击数据网格中的任何一行会弹出一个对话框,用户可以在其中编辑所选行的值。当进行更改并且用户单击“保存”时,数据库中的数据将更新。但我们还希望在本地ko.observearray中反映出更改,然后针对使用此“客户机”集合的任何其他视图使用新数据刷新自己。换句话说,视图必须使用ko.observearray中的数据刷新自己,而不是从数据库中获取新的列表


我已经成功地做到了这一点——有一个.cshtml文件,其中包含数据网格和一个表单,用于在数据网格中创建新行。在这种情况下,网格中的数据将正确刷新。但是,当更改发生在另一个cshtml文件上时,我无法将这些更改传递到其他视图。这可以在淘汰赛中完成吗?如果可以,请给我举一个例子,说明如何以及在何处完成这项工作。

我将使用事件聚合器模式。我给信号员做了一个

安装usignnuget

Install-Package SignalR.EventAggregatorProxy
如果您不使用信号器,那么您可以从我的库中提取相关部分,在这里演示