Backbone中on事件注意事项
我们先来看下on事件的函数签名: object.on(event, callback, [context])
大家可能只注意到了event,callback,其实这里有一个很重要的参数就是context就是事件执行的上下文环境,如果这里不指定context,则执行的函数中则无法使用this以及调用本对象中的函数
1 initialize: function () { 2 var self = this; 3 this.fileuploadEl = $('#fileupload'); 4 this.imgDirIdEl = $('#imgDirId'); 5 this.listenTo(ImageCommon, 'change:selectedIndex', this.imgDirChangeEvent); 6 <span style="color:#ff0000;">ImageCommon.on('leftRowClick', this.initImgListUI, this);//只有传递this上下文后,才能在注册函数中使用this</span> 7 8 this.initUploadUI(); 9 }, 10 /** 11 * 初始化上传控件 12 */ 13 initUploadUI: function () { 14 this.fileuploadEl.fileupload({ url: './upload' }); 15 console.log('initUploadUI this is '); 16 console.log(this); 17 }, 18 /** 19 * 显示查询出来的图片 20 */ 21 initImgListUI: function () { 22 console.log('initImgListUI this is '); 23 console.log(this); //只有在ImageCommon.on指定上下文后才可以使用this 24 ...}
浙公网安备 33010602011771号