我很难搞清楚如何做到最好。我有一个模型,在其初始化方法中实例化一些集合。在实例化该模型后,我需要立即在其中一个集合中获取模型,但当时我尝试获取该模型似乎不可用,所以我最终得到“未定义”。这就是我所拥有的:
var App = Backbone.Model.extend({
initialize: function() {
this.users = new Users();
}
});
app = new App();
someUser = app.users.get("someuserID"); // -> undefined
但如果我这样做:
var App = Backbone.Model.extend({
initialize: function() {
this.users = new Users();
}
});
app = new App();
setTimeout(function(){
someUser = app.users.get("someuserID"); // -> user instance
},3000);
我尝试在App初始化方法中添加this.trigger("loaded")
,然后侦听该事件,但事件不会触发。像这样:
var App = Backbone.Model.extend({
initialize: function() {
this.users = new Users();
this.trigger("loaded");
}
});
app = new App();
app.on("trigger",function(){ // -> never actually triggers
someUser = app.users.get("someuserID");
});
有什么想法吗?
请注意,Users集合IS是从一个安静的API中正确地提取用户的。
谢谢,
路易斯
答案 0 :(得分:1)
当集合完成.fetch
后,它会根据Backbone documentation触发reset
个事件。你没有在这里列出你的Users
课程,但假设它只是一个集合而不是一个包装,你可以做以下事情:
var App = Backbone.Model.extend({
initialize: function() {
this.users = new Users();
}
});
app = new App();
app.users.on('reset',function() { var someUser = app.users.get("someuserID"); });