[英]Backbone custom event callback arguments
我试图使用trigger()
函数将自定义事件中名为newIndex的参数从一个视图传递到另一个视图。 这是第一个视图的节选:
var ProductListView = Backbone.View.extend({
el: '#products',
events:{
sortupdate: function(event, ui){
ui.item.trigger('moved', ui.item.index());
}
}
});
触发“移动”事件的元素是另一个视图。 这是该观点的摘录:
var ProductItemView = Backbone.View.extend({
events: {
moved: 'viewMoved'
},
initialize: function(){
_.bindAll(this, 'render', 'viewMoved');
},
viewMoved: function(newIndex){
anotherFunc(this.model, newIndex);
},
});
我遇到的问题是,在anotherFunc()
调用中,newIndex参数似乎是事件本身,而不是触发事件时传递的值。 如果我将viewMoved
回调调整为以下值,它将正常工作:
viewMoved: function(event, newIndex){
anotherFunc(this.model, newIndex);
},
这是预期的功能吗? 事件本身是否始终是传递给自定义事件的回调的第一个参数,还是这里发生了其他事情? 是否打算在某处记录此内容? 我在主干文档中找不到对此的任何引用。
Backbone在ui.item
大量使用jQuery,而您的ui.item
实际上是jQuery对象。 请参阅有关触发功能的文档。
总之,由于ui.item
不是主干视图,因此您正在使用jQuery的trigger
。 总是在event
对象之后传递额外的参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.