![](/img/trans.png)
[英]Force Ember-Data to reload belongsTo/hasMany relationships on find
[英]Ember-data: validation errors on relationships (hasMany)
我正在嘗試在一個請求中創建包含相關記錄的記錄。 如果某些嵌套記錄有驗證錯誤,我想訪問該記錄上的相應錯誤。 我正在使用json-api適配器,那么后端的錯誤格式應該是什么? 我正在嘗試這樣的事情,雖然沒有運氣:
{"errors":[
{
"detail": "can't be blank",
"source": {
"pointer":"data/relationships/steps/0/data/attributes/est_threshold"
}
}
]}
根據這一行,它應該以某種方式實現: https : //github.com/emberjs/data/blob/master/addon/adapters/errors.js#L7
有任何想法嗎?
您需要在數據中加載嵌套記錄。 余燼指南中給出的示例結構為:
{
"post": {
"id": 1,
"title": "Node is not omakase",
"comments": [1, 2, 3]
},
"comments": [{
"id": 1,
"body": "But is it _lightweight_ omakase?"
},
{
"id": 2,
"body": "I for one welcome our new omakase overlords"
},
{
"id": 3,
"body": "Put me on the fast track to a delicious dinner"
}]
}
所以它似乎還沒有實現。 我發現在模型mixin中有一種hackish方式來做到這一點:
`import Ember from 'ember'`
RelatedErrors = Ember.Mixin.create
save: ->
@_super().catch (resp) =>
resp.errors.forEach (err) =>
if [_, rel, idx, attr] = err.source.pointer.match /^data\/relationships\/(\w+)\/(\d+)\/data\/attributes\/(\w+)$/
@get(rel).objectAt(idx).get('errors').add(attr, err.detail)
`export default RelatedErrors`
但是,不推薦在DS.Errors上add
,因此這仍然不是一個完美的解決方案。 在每次提交之前,還需要清除相關模型的無效狀態,這種情況到目前為止還沒有發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.