javascript - 在不进行 HTTP 调用的情况下更新 Ember Data 中的特定记录?

标签 javascript ember.js

我有一个名为 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/

相关文章:

ember.js - Ember 中的“action”不调用 Controller 方法

object - 在 Ember.js 中扩展 View 或使用 mixin

javascript - Ember.Select 选项 ValuePath 不适用于集合 ID

javascript - Ember disconnectOutlet 不会从 DOM 中删除模态模板

javascript - 无法编辑由其他用户在 Firestore 中创建的文档 (Vue.js/Firestore)

php - AJAX:单页应用程序结构/安全

Javascript 事件监听器 - 触发顺序

properties - 我的 Ember Controller 的属性确实得到了回显

javascript - 数据表无法读取未定义的属性 'fnGetData'

javascript - 如何获取参数值