Javascript Model fetch()未触发任何事件
我创建了一个称为“艺术家”的主干模型和一个称为“艺术家视图”的主干视图。我成功地获取了模型,正如我在ChromeDevTools网络选项卡中看到的那样 然而,fetch当时没有触发任何“更改”事件。 奇怪的是,它在创建模型时很好地触发了“更改”事件,但在获取此事件时却没有触发 我可以在fetch()方法中使用success回调,但我觉得这不是最合适的方法。有什么想法吗 模型和视图初始化:Javascript Model fetch()未触发任何事件,javascript,events,backbone.js,model,fetch,Javascript,Events,Backbone.js,Model,Fetch,我创建了一个称为“艺术家”的主干模型和一个称为“艺术家视图”的主干视图。我成功地获取了模型,正如我在ChromeDevTools网络选项卡中看到的那样 然而,fetch当时没有触发任何“更改”事件。 奇怪的是,它在创建模型时很好地触发了“更改”事件,但在获取此事件时却没有触发 我可以在fetch()方法中使用success回调,但我觉得这不是最合适的方法。有什么想法吗 模型和视图初始化: var artist = new Artist({id: 3}); var artistView = new
var artist = new Artist({id: 3});
var artistView = new ArtistView({model: artist});
artist.fetch();
var ArtistView = Backbone.View.extend({
initialize: function() {
this.model.on("change", this.test());
},
test: function() {
console.log(this.model.get("name"));
}
});
然后我取回我的模型:
var artist = new Artist({id: 3});
var artistView = new ArtistView({model: artist});
artist.fetch();
var ArtistView = Backbone.View.extend({
initialize: function() {
this.model.on("change", this.test());
},
test: function() {
console.log(this.model.get("name"));
}
});
在我的主干视图类中,我听到来自模型的“更改”事件:
var artist = new Artist({id: 3});
var artistView = new ArtistView({model: artist});
artist.fetch();
var ArtistView = Backbone.View.extend({
initialize: function() {
this.model.on("change", this.test());
},
test: function() {
console.log(this.model.get("name"));
}
});
编辑:“同步”事件也不起作用。当我创建模型时,它会触发一个“同步”事件,但在成功获取模型时不会触发。您需要使用“同步”事件
“更改”仅在属性更改时激发
将thx编辑为stephen。问题来自我的事件侦听器。它实际上没有考虑上下文 以下是解决方案:
this.model.on("sync", this.test, this);
而不是
this.model.on("sync", this.test());
侦听同步事件。你是对的,同步更合适。刚刚测试过,但不幸的是它无法工作。在创建模型时调用测试方法,但在成功获取模型时不调用。疯狂…它应该来自我的事件侦听器,因为我刚刚手动触发了一个“sync”事件,但什么也没有出现。下面是解决方案:this.model.on(“sync”,this.test,this);:)