Backbone.js - 与另一个视图共享模型的一部分

时间:2012-02-13 11:21:20

标签: backbone.js

我有父模型的父视图和子视图。

我想将模型的一部分(一个集合)的引用传递给子模型,因此子模型可以监视这些变化并做出相应的反应。

我不确定这样做的最佳方法 - 可能是其中一种方法吗?

  • 传递整个模型:我不想这样做,因为模型包含 一堆孩子不应该知道的东西。

  • 传递模特的一部分:我认为这不可能......如果我使用 this.model.get('thesubpart'),我想我会传递一个值,而不是 参考。

  • 在父视图中绑定子事件:这是要走的路吗?我 我不确定如何做到这一点。

1 个答案:

答案 0 :(得分:0)

您的问题有点令人困惑,但我认为您希望子模型能够对父模型中发生的事情做出反应,但我不确定父模型是集合还是单个模型本身。

执行此操作的首选方法是通过事件(即parent.on('change', child.handleParentChange),其中handleParentChange是在子模型上定义的函数。由于您似乎只对特定的属性更改感兴趣,因此可以绑定到更多特定的“改变:子部分”事件。

有不同的方法可以做到这一点,例如事件聚合器,但总体思路是一样的。但是Be careful of zombies。如果父项比子项更长,它将使子项保持在内存中,因为绑定(事件聚合器的优点,如果正确实现)。