操纵Backbone View范围之外的元素

时间:2012-10-19 13:46:48

标签: javascript backbone.js

我目前正在编写一份报告,其中包含一些用于数据过滤的输入元素和一个显示集合中相应数据的表。

我的子视图跟随Addy Osmani的subviews solution。所以我有

  • 报告视图,其中包含:
    • 标题子视图
    • 切换子视图
    • 表子视图

切换子视图基本上是一个具有三角形背景并基于类翻转的锚元素。

切换子视图有两个任务

  1. 通过更改课程来听取点击事件并将其翻转为自己。
  2. 为显示和隐藏状态操纵父视图(报表视图)类。
  3. 我的问题是改变报告视图的类的逻辑应该放在哪里? 在子视图中?还是父视图?
    如果它在父视图中,我该如何调用方法

    • 直接通过传递parentView作为参数和子视图this.parentView.toggleReport()
    • 再次将parentView作为参数传递并在父视图上触发事件。
    • 只是在切换视图范围之外操作dom。

1 个答案:

答案 0 :(得分:3)

让父视图在切换视图上侦听自定义事件,并采取相应的行动。

在父视图中:

this.toggleView.on('toggle', this.toggleReport, this);

在翻转你自己的类的切换视图中,也会输入:

this.trigger('toggle'); // or this.trigger('toggle', stateOfTheToggle);

另一种选择是使用Model来表示切换的状态,并在父视图和切换视图之间共享...并且仅绑定到该事件上的事件。