当我使用ember-data向一对多字段添加新记录时,我试图触发适当的PUT请求。

var track = genre.get('tracks').createRecord({name: "Hit me baby one more time!"})
track.get('transaction').commit()


这会将PUT请求发送到“ / genres”,并发送所有流派属性和其他曲目。

// PUT /genres
{"genre":{"name":"Pop","tracks": [{"name":"Hit me baby one more time!","genre_id":null}]}}


但是我宁愿……。喜欢:

// PUT /tracks
{"track": {"name":"Hit me baby one more time!", "genre_id":1}}}


如果可能,我还要为/ tracks上的PUT请求自动添加一个附加参数。这些是我的模型:

App.Genre = DS.Model.extend({
  name:         DS.attr('string'),
  tracks:       DS.hasMany('App.Track')
})

App.Track = DS.Model.extend({
  genre:      DS.belongsTo('App.Genre'),
  uri:        DS.attr('string')
})

最佳答案

不好的是,在REST适配器中,我有以下设置:

DS.RESTAdapter.map('App.Genre', {
  tracks: { embedded: 'always' }
})


embedded设置为load解决了我的问题。

关于javascript - 创建新记录并使用ember-data提交事务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17978315/

10-11 15:27