【发布时间】:2013-05-28 20:55:50
【问题描述】:
我创建了一个名为“artist”的主干模型和一个名为“artistView”的主干视图。我成功地获取了模型,因为我可以在我的 Chrome devtools 网络选项卡中看到它。
但是,此时 fetch 并未触发任何“更改”事件。 奇怪的是,它在创建模型时很好地触发了一个“更改”事件,但在获取这个模型时却没有......
我可以在 fetch() 方法中使用成功回调,但我觉得这不是最合适的方法。有什么想法吗?
模型和视图初始化:
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"));
}
});
编辑:“同步”事件也不起作用。当我创建模型时,它会很好地触发“同步”事件,但在成功获取模型时不会。
【问题讨论】:
-
监听同步事件。
-
你说得对,同步会更合适。
标签: javascript events backbone.js model fetch