【问题标题】:Marionette Parent and child viewsMarionette 父子视图
【发布时间】:2016-02-01 00:58:50
【问题描述】:

目前我有一个应用程序,我在其中创建了一个包含两个区域的布局。在两个区域中,一个是标题,另一个是由网格数据填充的内容区域。

我有 3 个项目视图来替换我的内容区域。现在我想知道如何存储在第一个 itemview 中选择的行的值并将其显示在第三个视图中。我尝试的是在布局中创建了一个模型对象,并在所有视图中使用该模型进行设置和获取,就好像它是一个共享对象一样,并且任何视图都可以使用 layout.model.set() 或 layout.model.get( )。

在布局中创建模型似乎不是一个好方法。共享数据的另一种方式是什么?如果我使用单个视图特定的模型对象,则另一个视图无法访问一个视图中的数据集,因为模型是使用 new 运算符创建的。

【问题讨论】:

    标签: backbone.js marionette


    【解决方案1】:

    我是发布-订阅模式的忠实拥护者,而 Marionette 使用其事件聚合器使实现这一点变得非常容易。第一个视图会发送一个事件,比如说“viewname:selectedrows”,它会传递与事件一起选择的特定模型。它不需要知道谁订阅了该事件,也不应该关心。它只是暴露了一个有趣的事件。然后第二个视图可以在其事件处理程序中访问该数据。

    我喜欢基于事件的架构的原因是视图保持松散耦合。视图是完全独立的,而不是对共享对象的硬编码引用。您可以将它移动到应用程序的任何其他部分,它仍然可以工作。

    【讨论】:

    • 您能否分享一些示例工作代码以了解它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多