jel*_*han 5 ember.js ember-data
当尝试将新创建的对象推送到具有多个关系的父级时,我运行错误:
Assertion failed: The content property of DS.PromiseArray should be set before modifying it
Run Code Online (Sandbox Code Playgroud)
这是我的代码.
App.User = DS.Model.extend({
name : DS.attr('string'),
selections : DS.hasMany('selection', {async: true}),
creationDate : DS.attr('date')
});
App.Selection = DS.Model.extend({
value : DS.attr('string')
});
App.PollController = Ember.ObjectController.extend({
actions: {
save: function(){
// create new user record in store
var newUser = this.store.createRecord('user', {
name : this.get('newUserName'),
creationDate : new Date()
});
// create new selection record in store
var newSelection = this.store.createRecord('selection', {
id : 11,
value : "hallo"
});
// push selection to user
newUser.get('selections').pushObject(newSelection);
// save new user
newUser.save();
}
}
});
Run Code Online (Sandbox Code Playgroud)
当我试图将newSelection对象推送到选择用户模型数组时出错.
还尝试将行更改为
// push selection to user
newUser.get('selections').then(function(selections){
selections.pushObject(newSelection);
});
Run Code Online (Sandbox Code Playgroud)
然后我没有收到错误,但newSelection没有被推送给用户.选择用户数组保持为空.
我做错了什么?我完全错了吗?或者EmberJs/Ember数据中有错误吗?
我使用的是EmberJS 1.2.0和Ember Data beta 5.
我假设您说保存没有发回选择,导致您添加的代码是正确的.
重要的是要注意承诺是异步发生的
newUser.get('selections').then(function(selections){
// this will happen after save
selections.pushObject(newSelection);
});
newUser.save();
Run Code Online (Sandbox Code Playgroud)
您应该等待保存,直到按下选择
http://emberjs.jsbin.com/gotasa/1/edit?html,js,output
newUser.get('selections').then(function(selections){
selections.pushObject(newSelection);
newUser.save();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4381 次 |
| 最近记录: |