将参数传递给backbone .bind()函数

jpfvwuh4  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(183)

我有一个呈现视频播放器和视频列表的视图。

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();
}

},
这是我在视图上的初始化函数。我遇到的问题是当我将参数传入绑定函数时,错误

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);

指定要与 Backbone.js 绑定的函数的正确方法是什么,它需要一个参数?

nfeuvbwi

nfeuvbwi1#

语法不正确。您应该在函数声明中指定参数的名称,而不是值。
您可以像这样传入一个值:

this.videos.bind('fetchFinished', function(arg){
  console.log('should still work', arg); // should still work adfadf
  this.render();
}.bind(this, 'adfadf'));

注意,第二个bind是函数对象的本机bind方法,而不是 Backbone.js bind。最好使用 Backbone.js 的on,而不是使用它的别名bind,以避免混淆

相关问题