【问题标题】:How to create and save a new model in Ember Data 1.13.7 and update the UI如何在 Ember Data 1.13.7 中创建和保存新模型并更新 UI
【发布时间】:2015-10-23 06:38:34
【问题描述】:

我正在使用 Ember 1.13.5 和 Ember Data 1.13.7 以及默认的 JSONAPIAdapter/Serializer,我在保存新模型时遇到问题。

我的路线如下所示:

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}}),

        });
    },
});

这会成功返回控制器的“auditLog”键中的“log”模型集合,例如this.get('model.auditLog').

在控制器中,我创建了一个新的“日志”模型并成功保存,如下所示:

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 Data 核心代码使用,因此推测“保存”回调应该返回一个 DS.Model 实例。这里有什么问题吗?

另外,我是否通过使用“pushObject”来更新“log”模型的“model.auditLog”集合以使用新添加的模型更新 UI,或者它应该是一个自动过程? /p>

任何人都可以提供任何帮助,我们将不胜感激。

谢谢。

【问题讨论】:

    标签: ember.js ember-data ember-cli


    【解决方案1】:

    好的,我在这里找到了解决这个问题的方法:

    https://github.com/emberjs/data/issues/3313

    帮助我的具体帖子是:

    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+ 版本。

    【讨论】:

      猜你喜欢
      • 2013-11-22
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多