我想保存一条记录并添加到 emberjs 中的现有列表中。我使用两种形式来模拟具有相同属性的多个模型。但主要关注的是第二个有书的。
我使用books: store.find('book',{})
我真的不知道空对象是什么的地方,但它会阻止书籍记录出现在列表中。我只想在保存后拥有它。
是否可以根据发布的数据设置 mockjax 的响应,所以我不必使用硬编码的 JSON?
我想保存一条记录并添加到 emberjs 中的现有列表中。我使用两种形式来模拟具有相同属性的多个模型。但主要关注的是第二个有书的。
我使用books: store.find('book',{})
我真的不知道空对象是什么的地方,但它会阻止书籍记录出现在列表中。我只想在保存后拥有它。
是否可以根据发布的数据设置 mockjax 的响应,所以我不必使用硬编码的 JSON?
Ember-form 似乎无法在其下方处理切换模型。当你这样做时,store.find('foo',{})
你是在欺骗 Ember 通过查询进行查找。当它通过查询找到时,它只包括集合中结果中返回的记录。当您这样做时find('foo')
,它会返回一个实时集合,该集合会在从存储中添加或删除任何记录时更新。您可以进行查找,然后toArray
避免将其变为实时集合。然后您可以手动将记录添加到集合中,并用新记录替换当前正在编辑的模型。不幸的是,如前所述,Ember-forms 不会更新绑定并继续使用相同的记录。
App.IndexRoute = Ember.Route.extend({
model: function() {
var store = this.store;
return store.find('book').then(function(books){
return {
books: books.toArray(),
book:store.createRecord('book'),
person: store.createRecord('person'),
category: [{id:1,"name":"Fantasy"},{id:2,"name":"Drama"}]
}
});
}
});
App.IndexController = Ember.Controller.extend({
actions: {
some_action: function() {
var self = this;
this.get('model.book').save().then(function(record){
var newRecord = self.store.createRecord('book');
self.get('model.books').pushObject(record);
self.set('model.book', newRecord);
console.log(newRecord);
}, function(error){
console.log('fail');
});
}
}
});