Ember.js 如何在Ember Data 1.13.7中创建和保存新模型并更新UI

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(

我使用的是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('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+的版本