应用程序启动时添加模型记录

时间:2013-09-27 18:37:21

标签: ember.js ember-data

我有一个大的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是否会触发。

1 个答案:

答案 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...
        });
    }
});