3

所以这里是瘦的......(我总是像 30 多岁的黑帮一样说话)

我有两个模型 - 你看:公司 + 日期

设置
Company 模型附加到下拉列表视图。它从服务器获取公司列表。日期设置为今天并附加到日期选择器视图。在初始化时,这些模型都通过应用路由器附加到它们各自的视图。这些构成了主要导航并且始终存在。

问题
问题是这些模型+数据将被多个视图使用,我希望有一种更简洁的方式将它们传递给这些视图。所以我使用了一个事件聚合器,它在事件发生变化时将事件与模型一起发布。但是,这对新视图的初始化没有帮助,因为模型没有改变。

四个选项

  1. 将日期模型存储在 localStorage 中。当模型由新视图初始化时检索它。当模型被新视图初始化时,从缓存中提取公司数据。

  2. 将任一模型从我的应用路由器传递到每个新视图。将模型更改绑定到视图。

  3. 首选:使用我的事件系统,但找到新视图初始化的解决方法。

  4. 举起我的手说“sc*** it”,然后对着大厅对面的女士尖叫一个小时

4

1 回答 1

2

坚持 #2 - 在实例化时将模型传递到每个视图中。这是经典的 MVC 架构,您可以很好地遵守此约定。典型的 MVC 让每个视图监听来自存储为引用的模型的事件,以便视图可以在模型更改时自行更新。通常,模型对象在视图构造函数中传递。

于 2012-03-01T06:00:40.937 回答