【发布时间】:2013-04-02 09:13:14
【问题描述】:
更新到 emberjs-rc.2 时自行解决。查看答案。
在我的应用程序中,我有 2 个页面具有向导式功能。在第一页上,用户将提供一些数据,在下一页上,用户将在基于第一页上的数据构建的列表中选择一个项目。我要做的是在第一页上所需的数据有效后立即开始加载第二页的数据,即使用户仍在第一页上。这是因为构建列表服务器需要一些时间,我希望在转换到下一页时准备好数据。
两个页面/路由嵌套在同一个资源下。
我的路线:
App.YayRoute = Ember.Route.extend({
events: {
dataValid: function() {
this.controllerFor('yaySecond').send('loadStuff');
}
}
});
App.YaySecondRoute = Ember.Route.extend({
events: {
loadStuff: function() {
this.controller.set('stuff', App.Stuff.find());
}
}
});
在 YayFirstController 中,我正在观察相关数据并在它出现时执行 this.send('dataValid')。最上面的路线 YayRoute 选择了这个,并在第二条路线上触发 loadStuff。 App.Stuff.find() 看起来像这样
find: function() {
var result = Ember.A([]);
$.getJSON(url, function(data) {
// populate result
});
return result;
}
一切都按预期运行,但我的问题是 YaySecondController 上的内容在从 loadStuff 调用时未填充。如果我将 controller.set('stuff', App.Stuff.find()) 的 loadStuff 内容添加到 YaySecondRoute 上的 setupController,数据将加载正常。但是随着数据尽快加载,我失去了冷静。有什么想法吗?
【问题讨论】:
标签: javascript ember.js