Ember.js 如何在Ember Data 1.13.7中创建和保存新模型并更新UI
我使用的是Ember 1.13.5和Ember Data 1.13.7以及默认的JSONAPIAdapter/序列化程序,保存新模型时遇到问题 我的路线如下所示:Ember.js 如何在Ember Data 1.13.7中创建和保存新模型并更新UI,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,我使用的是Ember 1.13.5和Ember Data 1.13.7以及默认的JSONAPIAdapter/序列化程序,保存新模型时遇到问题 我的路线如下所示: import Ember from 'ember'; export default Ember.Route.extend({ model: function(params) { return Ember.RSVP.hash({ auditLog: this.store.query(
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return Ember.RSVP.hash({
auditLog: this.store.query('log', {filter: {object: 'IsoApplication', object_id: params.id}}),
});
},
});
self = this;
var log = this.store.createRecord('log', {
logLevelId: 2
logTypeId: 2
object: 'IsoApplication',
objectId: 23
message: 'A message',
logData: '',
});
log.save().then(function(log) {
self.get('model.auditLog').pushObject(log);
});
这将成功返回控制器“auditLog”键中的“log”模型集合,例如This.get('model.auditLog')
在控制器中,我创建了一个新的“日志”模型,并成功地将其保存如下:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return Ember.RSVP.hash({
auditLog: this.store.query('log', {filter: {object: 'IsoApplication', object_id: params.id}}),
});
},
});
self = this;
var log = this.store.createRecord('log', {
logLevelId: 2
logTypeId: 2
object: 'IsoApplication',
objectId: 23
message: 'A message',
logData: '',
});
log.save().then(function(log) {
self.get('model.auditLog').pushObject(log);
});
我用这句话:
self.get('model.auditLog').pushObject(log);
要更新模型,以便在UI中显示我的新日志条目,但出现以下错误:
TypeError: internalModel.getRecord is not a function
“save”回调中的“log”参数的类型为“InternalModel”。我相信InternalModels只由Ember数据核心代码使用,所以“save”回调应该返回一个DS.Model实例。这里有什么问题吗
另外,我使用“pushObject”来更新“log”模型的“model.auditLog”集合,以便UI使用新添加的模型进行更新,这是正确的做法还是应该是一个自动过程
任何人能提供的任何帮助都将不胜感激
谢谢。好的,我在这里找到了这个问题的解决方案: 帮助我的具体职位是:
var self = this;
var usersArray = [];
store.find('user', params).then(function(users){
usersArray.addObjects(users);
usersArray.addObject(self.store.createRecord('user' ));
}
pushObject()函数不能再用于Ember Data 19+的版本