-1

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

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

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

4

1 回答 1

0

我会使用事件聚合器模式。我为 SignalR 做了一个

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy

安装usign nuget

Install-Package SignalR.EventAggregatorProxy

如果您对 SignalR 没有用处,则可以从我的库中提取相关部分,这里是演示

http://jsfiddle.net/jh8JV/

于 2013-08-22T14:05:20.810 回答