Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干自定义事件回调参数_Javascript_Backbone.js - Fatal编程技术网

Javascript 主干自定义事件回调参数

Javascript 主干自定义事件回调参数,javascript,backbone.js,Javascript,Backbone.js,我试图使用触发器函数将自定义事件中名为newIndex的参数从一个视图传递到另一个视图。以下是第一个视图的摘录: var ProductListView = Backbone.View.extend({ el: '#products', events:{ sortupdate: function(event, ui){ ui.item.trigger('moved', ui.item.index());

我试图使用触发器函数将自定义事件中名为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);
},

这是预期的功能吗?事件本身始终是传递给自定义事件回调的第一个参数,还是发生了其他事情?如果是有意的,是否有文件记录?我在主干网文档中找不到对此的任何引用。

主干网在幕后大量使用jQuery,而您的ui.item实际上是一个jQuery对象。有关详细信息,请参阅文档

总之,使用jQuery的触发器是因为ui.item不是主干视图。额外的参数总是在事件对象之后传递