JavaScript自定义事件触发器问题
我有一个包含2个创建/编辑按钮的详细信息视图 单击这些按钮,我会显示一个模式弹出窗口JavaScript自定义事件触发器问题,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一个包含2个创建/编辑按钮的详细信息视图 单击这些按钮,我会显示一个模式弹出窗口 var modal = new MyAppModalView({ model: person }); modal.bind("afterSave", function(values) { self.showMessage('Sucessfully submitted for saving', false, true); return true; }); 此外,在模态视图代码中,我有:
var modal = new MyAppModalView({
model: person
});
modal.bind("afterSave", function(values) {
self.showMessage('Sucessfully submitted for saving', false, true);
return true;
});
此外,在模态视图代码中,我有:
if (isNew) {
//Create flow
this.model.save(myJSON, {
url: "myapp/persons/create",
success: function() {
self.trigger("afterSave");
self.removeModal();
}
});
} else {
//Edit flow
this.model.save(myJSON, {
url: "myapp/persons/edit",
success: function() {
self.trigger("afterSave");
self.removeModal();
}
});
}
现在,在为Create/Edit保存之后,我触发了一个afterSave事件
当为创建流触发事件时,不会为编辑流触发该事件。我不知道为什么会这样
我尝试为模式afterSave/afterUpdate绑定两个独立的even,并触发每个even以创建/编辑;仍然不会调用触发器进行编辑afterUpdate
代码在saveAction中调用,如下所示
var MyAppModalView = BaseModal.extend({
....
saveAction: function(event) {
var self = this;
}
});
您不应该有一个不同的URL来发布创建和保存。这将使您的代码精简为:
this.model.save(myJSON, {
success: function() {
self.trigger("afterSave");
self.removeModal();
}
});
如果调用removeModal,则会触发afterSave,但编辑视图会导致afterSave消息以某种方式不显示。您可以将成功消息替换为警报,以验证情况是否属实。浏览器控制台中的任何错误无错误…只有事件未被触发…因此代码…self.showMessage“成功提交用于sav…未被调用用于编辑流”是否已尝试将afterSave bind事件移动到函数中,然后仅调用它进行编辑绑定和触发器?您确定它到达了处理程序的代码吗?自变量背后的意图是显而易见的。但是,您不会显示它是如何分配的。您是否检查过self是否始终指向正确的对象?请发布更多代码,说明如何以及在何处分配它的值。Thx…我刚刚尝试了…但在这种情况下它没有正确设置url…它尝试直接调用url作为函数{……我的歉意,它允许你重写URL。不管你应该使用相同的URL来创建和更新Update。