我有一个名为 emails
的 Ember.js 模型。该文件如下所示:
import DS from 'ember-data';
export default DS.Model.extend({
label : DS.attr('string'),
primary : DS.attr('string'),
email : DS.attr('string')
});
我正在从服务器获取结果并通过执行以下操作推送数据:
this.store.createRecord('emails', {
label: 'Foo',
primary: true,
email: foo@bar.com
});
我有一个表单,允许用户向商店添加新电子邮件。一旦他们添加了新的,我就会使用上面的代码将其推送到商店。
存储中只能有一条primary'键设置为
true`的记录。当用户添加新的主要电子邮件时,我需要手动将任何现有的主要电子邮件编辑为 false,然后才添加新的电子邮件记录。
我尝试执行类似 this.store.peekAll('emails')
的操作并解析它,但我似乎无法理解如何仅获取 primary: true< 的记录
并更新它。我怎样才能做到这一点?
请记住,我没有使用 REST 适配器,因此无法像这样查询 Ember 数据:http://guides.emberjs.com/v1.13.0/models/finding-records/#toc_querying-for-multiple-records .
最佳答案
您可以结合 Ember Data 的 peekAll
和 Ember.Enumerable 方法 findBy
来获取记录:
var Primary = this.store.peekAll('email').findBy('primary', true);
关于javascript - 在不进行 HTTP 调用的情况下更新 Ember Data 中的特定记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524996/