2

我有这些基本模型(超级简化以显示问题):

App.Alert = DS.Model.extend({
    recipients: DS.hasMany('App.Person')
})

App.Person = DS.Model.extend({
    name: DS.attr("string")
})

然后我尝试执行以下操作:

var alert = App.Alert.createRecord()
var persons = App.Person.find({page: 1, pageSize: 10})
alert.get("recipients").pushObjects(persons.toArray())
var persons2 = App.Person.find({page: 1, pageSize: 10})

此时我得到:

Uncaught Error: Attempted to handle event `loadedData` on <App.Person:ember592:121878738770883> while in state rootState.loaded.updated.uncommitted. Called with undefined 

因此,如果我将对象添加到关系中,它似乎会更改为未提交状态。问题是,如果我有一个带有 hasMany 的模型,并且我希望显示一个搜索对话框,用户可以在其中将更多人添加到警报中,我应该如何继续?搜索通常会导致加载一些已经添加到警报中的对象,因此是脏的。

当前的解决方法是将要添加的内容作为收件人保留在控制器中,并在保存之前添加它们。但是,如果我这样做,并且服务器不批准提交,我只需要回滚收件人以允许用户继续编辑。

管理 hasMany 关系的方法是什么,您还希望让用户搜索相同类型的记录。

4

1 回答 1

0

调用如何格式化响应App.Person.find

似乎没有正确返回响应(缺少密钥或 JSON 格式不正确)

Called with undefined建议一个空或不可序列化的返回对象。

于 2013-06-29T05:37:19.870 回答