this.$el.on Backbone.Marionette
this.$el.on Backbone.Marionette
《木偶》中的this.$el.on(App.fileUploadCallbacks())
是什么意思?
我知道App.fileUploadCallbacks()是一个在代码中其他地方定义的函数,但我不习惯看到没有事件名称的.on
函数使用+当该事件被触发时调用的函数。
App.fileUploadCallbacks = function() {
return {
fileuploadadd: function(evt, data) {
data.files[0].timestamp = +(new Date);
return data.files[0].originalFile = data.files[0];
},
fileuploadprogress: function(evt, data) {
return App.vent.trigger("file:progress", data);
},
fileuploadprocessdone: function(evt, data) {
return App.vent.trigger('file:dropped', data, $(this));
},
fileuploadprocessfail: function(evt, data) {
return console.w;
}
};
};
它只是将事件绑定到回调函数。您的方法返回事件名称的散列,以及在引发这些事件时要调用的相应回调。
App。fileUploadCallbacks返回一个对象,事件名称作为键,处理函数作为值。下面是它的工作原理:
View.$el
是一个jQuery对象。
jQuery.on
可以接受{ eventType: handlerFunction }
格式的对象(参见文档)。
App.fileUploadCallbacks
返回这种格式的对象,因此以下代码块是等效的:
调用返回预期格式对象的方法:
this.$el.on(App.fileUploadCallbacks())
提供对象字面值:
this.$el.on({
fileuploadadd: function(evt, data) {
data.files[0].timestamp = +(new Date);
return data.files[0].originalFile = data.files[0];
},
fileuploadprogress: function(evt, data) {
return App.vent.trigger("file:progress", data);
},
fileuploadprocessdone: function(evt, data) {
return App.vent.trigger('file:dropped', data, $(this));
},
fileuploadprocessfail: function(evt, data) {
return console.w;
}
});
注册单个事件处理程序:
this.$el.on("fileuploadadd", function(evt, data) {
data.files[0].timestamp = +(new Date);
return data.files[0].originalFile = data.files[0];
});
this.$el.on("fileuploadprogress", function(evt, data) {
return App.vent.trigger("file:progress", data);
});
this.$el.on("fileuploadprocessdone", function(evt, data) {
return App.vent.trigger('file:dropped', data, $(this));
});
this.$el.on("fileuploadprocessfail", function(evt, data) {
return console.w;
});
请注意,事件名称现在是字符串,而不是对象键,因此它们需要引号。
相关文章:
- 将模型传递给 LayoutView Backbone.Marionette
- 如何使用requirejs和Backbone.Marionette同步/组织模块
- Backbone.Marionette 1.2没有“绑定”的方法
- 如何使用 Backbone.Marionette 构建用于将项目创建到列表中的应用程序
- Backbone.Marionette collectionview 在定义 el 时重置
- marionette.js vs Backbone updating DOM
- Backbone Marionette.js reqres框架没有'不要等待集合被填充
- 如何在Backbone.marionette.js的ItemView或Layout中设置默认属性
- MarionetteJS示例来自Backbone.Marionette.一个温和的介绍不起作用
- 当我更改Model Backbone.Marionette时,获取字段的名称
- Backbone.Marionette:将标题添加到集合视图
- Backbone.marionette:jQuery document.ready未在路线上运行
- 使用Marionette Backbone.js渲染视图后,获取计算的CSS属性(例如:宽度)
- Backbone.js&Marionette.js-无法从app.js主文件访问视图
- 使用Backbone.Marionette从JSON动态生成站点导航
- this.$el.on Backbone.Marionette
- 渲染布局和子视图在Marionette / Backbone.js
- 正确使用Backbone.js和Marionette来分组集合
- 无法使用 Backbone.Marionette 访问模型属性
- 使用backbone.marionette将请求的数据添加到集合