2013-02-05 199 views
8

我有一个观点,即需要一个collection像下面该集合包含的模型的单个属性。绑定骨干变化事件模型的属性集合中

我知道有许多替代品,以这样的:

  1. 创建视图为aCollectionToRender每个型号的附加.on("change")事件的看法。我不想这样做,因为它不是正确的事情我的情况
  2. 只需要一个this.collection.on("change")事件,并根据我的要求有事件处理程序过滤器。这是那么优雅,而且如果骨干网已经让我写事件过滤器正如我上面问,这是重复的代码

我只是想知道是否有任何的方式来写一个事件侦听器已经做了筛选。这个问题也可能是重复的;我看,但我没有找到任何完全一样的东西,但是,有很多骨干问题

回答

16

也许我误解了你的问题,但你可以做到你所展示的。检查出Backbone documentation

MyView = Backbone.View.extend({ 
    initialize: function() { 
     this.collection.on("change:attributeName", this.someAction /*function to call*/, this); 
    }, 
    someAction: function(model, value, options){ 
    } 
}); 
+2

Doh!我想你是正确的!出于某种原因,我认为当它是一个集合时,'change:attributeName'中的'attributeName'指的是集合的属性,而不是模型。 – Jay

+1

好的,但你怎么能做到这一点:this.collection.on(“更改”,功能(模型,财产){/ /获取在这里更改的属性...}); ??? –