gpt4 book ai didi

javascript - Backbone 模型如何从 Ajax 结果触发事件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:37 25 4
gpt4 key购买 nike

我有以下情况:

var Task = Backbone.Model.extend({
initialize: function() {
},
save: function() {
$.ajax({
type : "POST",
url : "/api/savetask",
data : this.toJSON(),
success : function (response) {
this.trigger("something", "payload");
}
});
}
});

当我运行它时,出现以下错误

this.trigger is not a function

在外部方法上,我可以触发一些东西......比如

var task = new Task();
task.trigger("something","payload");

我做错了什么?或者不做 :)

最佳答案

匿名函数中的

this指的是ajax对象。这是因为 javascript 中的“this”会根据函数的范围发生变化。为了引用初始函数的“this”,将其分配给不同的变量。以下将起作用:

save: function() {
var self = this;
$.ajax({
type : "POST",
url : "/api/savetask",
data : this.toJSON(),
success : function (response) {
self.trigger("something", "payload");
}
});
}

编辑:参见an explanation “这个”是如何确定的。

关于javascript - Backbone 模型如何从 Ajax 结果触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10030101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com