【问题标题】:Share settings between a group of Backbone.js models/views在一组 Backbone.js 模型/视图之间共享设置
【发布时间】:2013-09-21 03:36:47
【问题描述】:

我正在使用 Backbone + Marionette.js 开发 UI,它在单个页面上多次显示相同的 Widget。我正在努力寻找在每个小部件中包含事件的最佳方式。假设每个小部件显示一个选定朋友的 Facebook 信息(兴趣、状态提要、共同朋友)。如果用户更改了该特定小部件的选定朋友,那么更新属于该小部件的模型的最佳方法是什么?

这就是我想解决这个问题的方法......

创建设置模型 - 当用户在小部件中选择不同的朋友时,朋友选择视图会更新设置模型。

方法一: 控制器在“更改”事件上监听设置模型,并依次更新所有相关模型。每个模型永远不会知道设置模型。

方法 2: 将设置模型传递给每个模型的选项,每个模型都会监听设置模型,当它发生变化时,它会做它需要做的任何事情(重新加载等)。

这是我想到的两种方法。我觉得我更喜欢方法 1,但如果以类似方式使用 Backbone 的人提供任何反馈,我将不胜感激。

谢谢, 哈比尔

【问题讨论】:

    标签: backbone.js marionette


    【解决方案1】:

    我会按照您的建议使用单例设置模型来选择方法 2。这样,监听设置的视图或模型负责进行更新。方法 1 有两个潜在的陷阱。如果您将实际发生在控制器上的逻辑移动到控制器上,它可能会变得错综复杂。如果控制器只是对设置模型上的更改事件做出反应并将它们传播到其他模型和视图,那么它似乎没有存在的理由。

    【讨论】:

      【解决方案2】:

      另一种方法是利用 Marionette 的 event aggregator 功能。这将使您甚至不需要设置模型。相反,只需让更改后的模型触发其他模型正在侦听并相应调整的全局事件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-20
        • 1970-01-01
        相关资源
        最近更新 更多