如何在骨干中的视图之间交换模型

时间:2014-06-03 00:10:11

标签: javascript backbone.js

如果我有两个视图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

    },

1 个答案:

答案 0 :(得分:1)

您肯定使用事件在正确的轨道上。

然而,纱线的分离意味着观点A不应该对B有任何知识或参考。

相反,视图A应该只将模型X的事件作为消息的一部分推送到某种消息总线。视图B应该正在侦听此消息总线,并在收到事件时做出反应。

这意味着任何人都可以收听此事件 - 如果需要,您可以在将来轻松地将View B与View C交换。