【问题标题】:Ember Data: Best practice creating new recordEmber 数据:创建新记录的最佳实践
【发布时间】:2016-08-19 02:24:45
【问题描述】:

我想知道在 ember 数据应用程序中创建新记录时的最佳做法是什么。

女巫跟随策略被认为是最佳实践?

策略 1

  • 模型挂钩从 this.store.createRecord() 返回承诺;
  • 每个模板字段都通过模型挂钩映射到模型返回。
  • 操作保存模型。

策略 2

  • 每个模板字段都映射到一个控制器属性。
  • Action 调用 this.store.createdRecord() 并保存模型。

【问题讨论】:

  • 这两种策略都是完全有效的,并且各有优缺点。但是,您的策略 #2 可能不应该直接绑定控制器属性。而是使用可以轻松清理的虚拟/代理对象。

标签: ember.js ember-data


【解决方案1】:

我最近在 ember slack 中问了一个类似的问题。我得到的答案归结为:使用策略#1,结合ember-data-route addon

来自插件的自述文件:

确保在模型之后进行清理。

您停用的任何路线都将检查模型以确保它没有未保存。如果是,它将回滚或从商店中删除模型,具体取决于先前是否已持久化。

【讨论】:

    【解决方案2】:

    这取决于,我使用这两种策略。

    对于具有belongsTohasMany 关系的非常复杂的模型,我通常使用策略#2,因为大多数时候清理一些控制器值比删除所有模型和依赖关系(当用户取消操作时)更简单。大多数时候,我在编辑带有hasMany 的模型时也使用策略2,因此hasMany 不会被直接更改。

    对于简单模型,我会使用策略 #1 并确保在用户不保存更改时删除模型(例如在 willTransition 挂钩中)。

    编辑:在@Grapho 发表评论之前,这个 ember 插件可能会很方便:
    https://github.com/yapplabs/ember-buffered-proxy

    【讨论】:

      猜你喜欢
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多