Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript自定义事件触发器问题_Javascript_Jquery_Backbone.js - Fatal编程技术网

JavaScript自定义事件触发器问题

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; }); 此外,在模态视图代码中,我有:

我有一个包含2个创建/编辑按钮的详细信息视图

单击这些按钮,我会显示一个模式弹出窗口

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。