javascript - 如何在主干 View 之间交换模型

标签 javascript backbone.js

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

相关文章:

javascript - 在 bootstrap-select 中使用 jQuery 动态添加 OptGroups

javascript - 如何修复未捕获的类型错误 : Cannot read property 'settings' of undefined

javascript - json检索的下划线方法

javascript - JavaScript 中的 Boolean.valueOf 是什么

javascript - IE 无法正确比较日期字符串

javascript - 使用 backbone 时 css 不工作

javascript - Hammer JS 不适用于主干

javascript - 对下划线模板使用多个数据源

javascript - 在网站上花费的 AJAX 时间

javascript - 了解Backbone设置方法和模型