Ember-data根据id和其他参数查找记录?

Edy*_*rne 9 javascript ember.js ember-data

在Ember文档中,我发现find()支持通过id查找:

this.store.find('post', 1); // => GET /posts/1
Run Code Online (Sandbox Code Playgroud)

并且还通过传递任意参数:

this.store.find('post', { name: "Peter" }); // => GET to /posts?name='Peter'
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我必须通过id找到,并传递一个额外的参数来请求所有字段包含在响应中(默认情况下会省略一些),如下所示:

this.store.find('post', 1); // => GET /posts/1?include=all
Run Code Online (Sandbox Code Playgroud)

我试着这样做:

this.get('store').find('post', params.post_id, { include : 'all' });
Run Code Online (Sandbox Code Playgroud)

但我的参数被忽略了.

这似乎是一个相当基本的用例,所以我必须遗漏一些东西......

我怎么能做到这一点?

小智 0

我的建议是尝试使用查询函数而不是查找函数。这将允许您查询无限数量的过滤器。

var myStore = this.get('store');
myStore.query('post', { 
    _id: params.post_id,
    include : 'all'
 }).then(function(peters) {
      // Do something with `peters`
});
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这会根据 OP 的请求构建一个 `/posts?id=X&include=all` URL,而不是 `/posts/X?include=all`,并且通常 RESTful API 只支持后者 (2认同)