我有一个呈现视频播放器和视频列表的视图。
initialize: function() {
var q = window.location.search.slice(3);
this.videos = new Videos(window.exampleVideoData);
this.videos.bind('select', this.notifyAppView, this);
if ( q ){
this.videos.bind('fetchFinished', function(){
console.log('should still work');
this.render();
}, this);
// Any time this.videos collection changes we will re-render
this.videoPlaying = this.videos.models[0];
this.videos.fetch( q );
}else{
//Collection of all videos
// Any time this.videos collection changes we will re-render
this.videoPlaying = this.videos.models[0];
this.render();
}
},
这是我在视图上的初始化函数。我得到的问题是,当我将参数传递给bind函数时,错误
app.js:10 Uncaught SyntaxError: Unexpected string
这就是一行:
this.videos.bind('fetchFinished', function(){
console.log('should still work');
this.render();
},这个);
当我们将字符串传递给函数时,我们得到错误:
this.videos.bind('fetchFinished', function('adfadf'){
console.log('should still work');
this.render();
}, this);
指定一个与骨干绑定的函数的正确方法是什么?这需要一个参数?
答案 0 :(得分:2)
这是不正确的语法。您应该在函数声明中指定参数的名称,而不是值。
您可以传递如下值:
this.videos.bind('fetchFinished', function(arg){
console.log('should still work', arg); // should still work adfadf
this.render();
}.bind(this, 'adfadf'));
请注意,第二个bind
是函数对象的本机bind
方法,而不是主干bind
。最好使用骨干on
而不是使用它的别名bind
来避免混淆