如何通过触发骨干事件或添加/删除/更改集合来传递自定义选项

时间:2013-12-22 00:10:43

标签: javascript events backbone.js

从Backbone链接:

http://backbonejs.org/#Events-catalog

如果您想阻止事件被触发,您可以选择{silent:true}。请注意,这很少,甚至从来都不是一个好主意。通过选项中的特定标记来查看事件回调以及选择忽略,通常会更好。

我正在寻找一个示例,当我们添加,删除或更新集合时,特别是当我们触发自己的事件时,我们如何传递自定义选项(上面一行中的特定标志)。

将我的旗帜传递给选项,然后在回调方面撤退什么都没有。

这就是我所做的:

var coll = new Backbone.Collection.extend({
   //
});

注册活动:

coll.add(aModel, {myFlag : true});

听力事件:

coll.on('add', function(model,collection,options){
  console.log(options.myFlag);
  //prints undefined
});

也适用于我的自定义活动:

注册活动:

coll.trigger('myEvent', {myFlag : true});

听力事件:

coll.on('myEvent', function(model,collection,options){
  console.log(options.myFlag);
  //prints undefined
});

1 个答案:

答案 0 :(得分:0)

你的论点错了...... 对于自定义事件:

coll.trigger('myEvent', {myFlag : true});


coll.on('myEvent', function(options){
  console.log(options.myFlag);
});

至于您的"add"事件示例,它有效:

var coll = new Backbone.Collection();
coll.on('add', function(model,collection,options){
  console.log(options.myFlag);///Prints True
});
coll.add({}, {myFlag:true}); 

请注意,coll的初始化与您的版本

不同