Emberjs 保存后创建新模型

Emberjs create new model after saving

这看起来非常琐碎,我觉得问起来很尴尬,但我似乎无法在保存当前模型后创建一个新模型。

想想待办事项应用,您想在其中不断添加新任务:

我有一个非常简单的路线,可以正确保存,但不会用新模型更新前端

  model() {
    return RSVP.hash({
      distro: get(this, 'store').createRecord('distro'),
    });
  },

  setupController(controller, models) {
    controller.setProperties(models);
  },

  actions: {
    saveDistro(distro) {
      let newDistro = get(this, 'store').createRecord('distro');

      distro.save().then(() => {
        set(this, 'distro', newDistro);
      });
    },
  }

我想我只是错过了这里显而易见的东西?

您正在此处创建 2 个不同的 distros。第一个是传递给您的控制器以显示的内容,第二个是在操作中创建的 saveDistro().

通常,您不想在 model() 挂钩中创建新记录。那是为了查找数据。由于我不确定您在控制器中做什么并使用第一个发行版进行查看,因此我无法对此发表评论,但我建议您这样做:

编辑:

// Controller
init() {
  this._super(...arguments)
  this.set('formAttrs', {
    attr1: null,
    attr2: null
    // ...
  })
},

actions: {
  saveDistro() {
    const attrs = this.get('formAttrs')
    this.send('saveDistro', attrs)
  }
}

// Model
actions: {
  saveDistro(attrs) {
    let newDistro = get(this, 'store').createRecord('distro', attrs);

    distro.save().then(() => {
      // transition to new distro route
    });
  }
}