1

我有一个大型 JSON 文件,我想在应用程序启动时将其处理成不同类型的模型记录。我使用 jQuery 通过 AJAX 调用加载记录。

我假设我想在应用程序上使用“就绪”事件处理程序。我不确定如何在应用程序的早期阶段获得对商店的引用。下面的代码将无法获取商店。

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

如果我将处理代码放在路由器中并通过承诺加载它,我已经完成了上述工作。我尝试创建自己的 ApplicationRoute,认为这可能会在应用程序加载时立即触发,但不确定以其他哈希路径“#/something”为目标的 URL 是否会触发它。

4

1 回答 1

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...
        });
    }
});
于 2013-09-30T18:43:30.500 回答