2016-06-16 81 views
1

在灰烬的数据有:烬JS查找记录由多个ID

this.store.findQuery('book', 1); 

将在返回/书籍/ 1

现在我想返回ID这样的列表作为/书籍/ 1,2,3,4

我该怎么办?我也尝试

this.store.findQuery('book','1,2,3,4'); 

但有2个问题是:
1.它归还图书/ 1%2C2%2C3%2C4:逗号是解码的HTML字符,所以不工作
2.远因为我知道findQuery只用于找到与ID的单个记录,而不是多个记录 https://guides.emberjs.com/v2.3.0/models/finding-records/

回答

2

我想你想找到给定ID的所有记录。对于这个有一个查询对象,你可以通过过滤器

this.store.query('book', {reload:true, filter: {book_ids: '1,2,3,4'} }) 

这会打击服务器/书籍?筛选[book_ids] = 1,2,3,4,然后在你的服务器端,你可以找到所有记录这是在这个数组1,2,3,4里面,像SELECT * BOOKS WHERE ID IN(1,2,3,4) - 不确定你在服务器端使用什么。

reloed:true是可选的 - 这是您每次访问路线时都要强制重新加载数据的原因。这在部分查询多个记录中进行了解释

https://guides.emberjs.com/v2.5.0/models/finding-records/#toc_querying-for-multiple-records