如果我有两个 View A 和 B。A 有模型 X,B 有模型 Y。B 中的单击事件将触发 View A 中的模型更改为 View B 中的模型,最好的方法是什么这个?
我正在考虑触发一个事件,让 A 从 B 监听,然后将新模型从 B 传递给 A,但我认为这是一种错误的做法。
另一种方法是将 A 的模型传递给 B,这样 B 就可以引用它并能够更改它,但我认为这违背了 MVC 的全部目的。
下面是点击事件 View B 中的一些代码:
// display item picture or item Detail View
viewItem : function(){
event.preventDefault();
event.stopPropagation();
//change the parent model to this one
},
最佳答案
使用事件,您肯定走在正确的轨道上。
但是,关注点分离意味着 View A 不应该有任何知识或对 B 的引用。
相反, View A 应该只是将 Model X 的事件作为消息的一部分推送到某种消息总线。 View B 应该监听该消息总线,并在收到事件时使用react。
这意味着任何人都可以收听此事件 - 如果需要,您将来可以轻松地将 View B 替换为 View C。
关于javascript - 如何在主干 View 之间交换模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24005227/