Backbone中on事件注意事项

我们先来看下on事件的函数签名: object.on(event, callback, [context])

大家可能只注意到了event,callback,其实这里有一个很重要的参数就是context就是事件执行的上下文环境,如果这里不指定context,则执行的函数中则无法使用this以及调用本对象中的函数

initialize: function () {
      var self = this;
      this.fileuploadEl = $('#fileupload');
      this.imgDirIdEl = $('#imgDirId');
      this.listenTo(ImageCommon, 'change:selectedIndex', this.imgDirChangeEvent);
      ImageCommon.on('leftRowClick', this.initImgListUI, this);//只有传递this上下文后,才能在注册函数中使用this

      this.initUploadUI();
    },
    /**
     * 初始化上传控件
     */
    initUploadUI: function () {
      this.fileuploadEl.fileupload({ url: './upload' });
      console.log('initUploadUI this is ');
      console.log(this);
    },
    /**
     * 显示查询出来的图片
     */
    initImgListUI: function () {
      console.log('initImgListUI this is ');
      console.log(this);   //只有在ImageCommon.on指定上下文后才可以使用this
...}


你可能感兴趣的:(backbone)