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

Javascript 如何通过触发主干事件或添加/删除/更改集合来传递自定义选项,javascript,events,backbone.js,Javascript,Events,Backbone.js,从主干链路: 如果要防止触发事件,可以将{silent:true}作为选项传递。请注意,这很少,甚至从来都不是一个好主意。通过事件回调选项中的特定标志查看并选择忽略,通常效果会更好。 我正在寻找一个示例,当我们添加、删除或更新集合时,特别是当我们触发自己的事件时,如何传递自定义选项(上面几行中的特定标志) 将我的标志传递到选项中,然后在回调端重新修改将一无所获 这就是我所做的: var coll = new Backbone.Collection.extend({ // }); 注册事

从主干链路:

如果要防止触发事件,可以将{silent:true}作为选项传递。请注意,这很少,甚至从来都不是一个好主意。通过事件回调选项中的特定标志查看并选择忽略,通常效果会更好。

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

将我的标志传递到选项中,然后在回调端重新修改将一无所获

这就是我所做的:

var coll = new Backbone.Collection.extend({
   //
});
注册事件:

coll.add(aModel, {myFlag : true});
coll.trigger('myEvent', {myFlag : true});
聆听活动:

coll.on('add', function(model,collection,options){
  console.log(options.myFlag);
  //prints undefined
});
coll.on('myEvent', function(model,collection,options){
  console.log(options.myFlag);
  //prints undefined
});
也适用于我的自定义活动:

注册事件:

coll.add(aModel, {myFlag : true});
coll.trigger('myEvent', {myFlag : true});
聆听活动:

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

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

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


coll.on('myEvent', function(options){
  console.log(options.myFlag);
});
对于您的
“添加”
事件示例,它可以工作:

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

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

@Koka,您说过“将我的标志传递到选项中,然后在回调端重新修改将一无所获”。你能把你用过的密码贴出来吗?我只是问,因为你想知道如何在选项中传递一个标志,然后你说你在选项中传递了一个标志,但它不起作用,所以很高兴看到你已经尝试了什么,这样我们就可以解释你应该如何做。请看编辑的portion@Koka,添加侦听器和处理程序看起来非常完美。我刚刚测试了一些类似的东西,它是有效的。你确定你的原始代码中没有输入错误吗?