如果我有两个视图A和B. A有模型X而B有模型Y.B中的点击事件将触发视图A中的模型更改为视图B中的模型,最佳方法是什么此?
我正在考虑触发A会从B收听的事件,然后将新模型从B传递给A,但我认为这是一种错误的做法。
另一种方法是将A的模型传递给B,因此B会引用它并能够改变它,但我认为这会破坏MVC的整个目的。
这里是点击事件视图B中的一些代码:
// display item picture or item Detail View
viewItem : function(){
event.preventDefault();
event.stopPropagation();
//change the parent model to this one
},
答案 0 :(得分:1)
您肯定使用事件在正确的轨道上。
然而,纱线的分离意味着观点A不应该对B有任何知识或参考。
相反,视图A应该只将模型X的事件作为消息的一部分推送到某种消息总线。视图B应该正在侦听此消息总线,并在收到事件时做出反应。
这意味着任何人都可以收听此事件 - 如果需要,您可以在将来轻松地将View B与View C交换。