侧载记录请求已加载的数据

时间:2014-05-07 09:27:13

标签: ember.js ember-data

我在我的Ember Data应用程序中广泛使用了侧载,以避免多次往返API,直到现在它总是很​​好用。

我使用的是Ember 1.6.0-beta.3,Ember Data 1.0.0-beta.7,DS.ActiveModelAdapter和DS.ActiveModelSerializer。

如果我保存了导致此请求的Foo模型:

POST /foos

{
  "foo": {
    "name": "Foo"
  }
}

服务器使用创建的Foo进行响应,但也使用侧面加载的Bar来引用新的Foo。

201 Created

{
  "foo": {
    "id": 1,
    "name": "Foo"
  },
  "bars": {
    "id": 1,
    "foo_ids": [1]
  }
}

在此回复之后,看起来Bar不知道ID = 1的Foo在商店中,并发出以下请求:

GET /foos?ids[]=1

此请求失败,因为我没有该端点。我不希望Ember Data应该发送这个请求,因为我们刚刚加载了ID = 1的Foo。

相反,我希望不应该提出额外的请求。相反,Bar应该与新创建的Foo相关联。

我的期望是否超出预期?这是一个错误吗?

修改

我能够通过显式地加载foo来解决这个问题。这非常不优雅,但是,嘿,这是一种解决方法。

具体来说,我在POST / foos后更改了我的API以响应以下内容:

{
  "foo": {
    "id": 1,
    "name": "Foo"
  },
  "bars": {
    "id": 1,
    "foo_ids": [1]
  },
  "foos": [{
    "id": 1,
    "name": "Foo"
  }]
}

然后侧载的Bar不会尝试加载它的Foo。

我要打开这个,因为解决方法不是解决办法。

0 个答案:

没有答案