【发布时间】:2012-10-10 12:02:59
【问题描述】:
这是我的情况:我使用 jQuery.Forms 来进行 ajax 调用,而不是提交表单。当 ajax 调用开始并返回时,我需要各种模型/视图来响应这些事件(模型使用从调用返回的数据进行更新,某些控件被禁用然后启用等等)。
我在视图中映射了表单。我如何才能从视图中触发自定义“formSubmitting”“formSubmitted (with data)”并让任意数量的模型/视图响应这些事件?使用 Backbone.js 执行此操作的最惯用方式是什么?
编辑:
这就是我想要做的:
window.UploaderView = Backbone.View.extend({
initialize: function() {
this.setElement(this.options.base_div);
this.$el.find('form').ajaxForm({
beforeSubmit: function() {
this.trigger('ajax-calling');
},
success: function(responseJSON) {
this.trigger('ajax-called', responseJSON);
},
dataType: 'json,'
});
},
});
var update_uploader = new window.UploaderView({
base_div: $('#update-upload-action'),
});
var trigged = new window.UploaderView({
parent_view: update_uploader,
initialize: function() {
this.options.parent_view.on('ajax-calling', function() {
alert('calling!');
});
},
});
但这不起作用(不显示警报消息)。
谢谢
【问题讨论】:
-
我认为那里的同步存在一些问题,如果尚未创建
Trigged视图并且UploaderViewajax 已返回成功,则侦听器尚未到位,不会发生任何事情。 t ?
标签: javascript events javascript-events backbone.js