如何使用Ember Data实现“查找或创建”

时间:2013-02-12 14:40:44

标签: ember.js ember-data

目前,我正在使用Ember Data加载一些可能存在或不存在的数据。如果记录不存在,Web应用程序应该创建它。

简单的用例:记录库存。如果文章不存在,则应添加新文章。如果确实存在,那么员工可以立即使用该信息。

我怀疑适配器find()方法是这个问题的根源。它无法处理404未找到的错误,并且传递空结果也不起作用。

可能我忽略了一些微不足道的事情,因为他们发现或创造了一些东西。是一个非常规律​​的模式。请帮忙......

2 个答案:

答案 0 :(得分:4)

请参阅this issue,或者这是解决方案:

findOrCreate: (type, properties)->
  @store.find(type, properties.id).then null, (reason)=>
    if reason.status == 404
      record = @store.recordForId(type, properties.id)
      record.loadedData()
      record.setProperties(properties)
      record.save()
    else
      throw reason

答案 1 :(得分:1)

#296 已经是这个

的错误报告