我有一个大的JSON文件,我想在应用程序启动时处理成不同类型的模型记录。我使用jQuery通过AJAX调用加载记录。
我假设我想在Application上使用'ready'事件处理程序。我不确定如何在应用程序的早期阶段获得对商店的引用。下面的代码将无法获得商店。
var App = Ember.Application.create({
ready: function() {
console.log('ready going');
var store = this.Store(); // DOESN'T WORK
Ember.$.getJSON('js/static/bigguy.json').then(function(bg) {
...process data...
});
}
});
如果我将处理代码放在路由器中并通过promise加载它,我已完成上述工作。我尝试创建自己的ApplicationRoute,可能会在应用程序加载时立即触发,但不确定针对其他哈希路径“#/ something”的URL是否会触发。
答案 0 :(得分:0)
似乎在ApplicationRoute.model中执行此操作将是最好的方法。您可以获得的是应用程序将在您启动时处于加载状态,这就是我想要的。只有承诺返回模型后,应用程序才会转换到下一个路径。这允许您跳转到应用程序上的任何哈希路径,并确保将加载数据。
App.ApplicationRoute = Ember.Route.create({
model: function() {
var store = this.Store();
return Ember.$.getJSON('js/static/bigguy.json').then(function(bg) {
...process data...
});
}
});