[英]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.