Ember使用查询初始化路径模型

z33*_*33m 3 ember.js

我正在尝试使用DS查询初始化Route的模型,如下所示

App.Router.map(function() {
    this.resource('post', { path: '/posts/:post_slug' });
});

App.PostsRoute = Ember.Route.extend({
    model: function(params) {
        var records = App.Post.find({ slug: params.post_slug });
        return records.get('firstObject');
    }
});
Run Code Online (Sandbox Code Playgroud)

在这里,我通过它的slug找到一个Post并将第一个结果设置为路径模型.但由于records是异步填充,因此未正确设置模型数据.这样做的正确方法是什么?

z33*_*33m 7

用延迟模式解决了这个问题.

App.PostsRoute = Ember.Route.extend({
    model: function(params) {
        var records = App.Post.find({ slug: params.post_slug });
        var promise = Ember.Deferred.create();
        records.addObserver('isLoaded', function() {
            promise.resolve(records.get('firstObject'));
        });
        return promise;
    }
});
Run Code Online (Sandbox Code Playgroud)