我正在尝试使用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是异步填充,因此未正确设置模型数据.这样做的正确方法是什么?
用延迟模式解决了这个问题.
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)