【发布时间】:2017-05-02 22:24:50
【问题描述】:
我有一个 Ember 项目 (v2.12.0),我想通过它的 slug 找到某个模型。这些蛞蝓应该是独一无二的。
但是,当我使用 Ember.store.query() 查询记录时,返回的承诺总是根据 query() 的性质和 JSON API 规范解析为集合。
当服务器没有找到包含该特定 slug 的记录时,响应仍然是 200 OK,其负载为 my-model[] 的空集合。
我的问题是:
我怎样才能最好地在我的 ember 路由的 model() 挂钩中断言该集合恰好包含 1 个项目,或者中止并转换到 404 路由/页面?
这是我目前的代码:
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.query('my-model', {
filter: {
slug: params.myModelSlug
}
}).then((modelCollection) => {
// Code below fails when modelCollection is empty...
return modelCollection.get('firstObject');
if (modelCollection.get('length') === 0) {
// Throw new Ember Error 404?
}
});
}
});
【问题讨论】: