保存/提交时,如何从 ember 中的表单中删除空元素

How to remove empty elements from a form in ember, when saving/submitting?

本文关键字:表单 删除 元素 ember 提交 保存      更新时间:2023-09-26

假设我的控制器中有一个操作,如下所示:

actions: {
  save: function() {
    var self = this;
    this.get('model').save().then(function() {
      self.transitionToRoute('surveys');
    }, $.noop);
}

模型"hasMany"类型为"element"的元素(另一个模型,只有一个字段"title"),我可以从控制器访问它,如下所示:

var elements = this.get('elements');

我想在保存之前删除标题为空的元素。我尝试使用 forEach 和过滤器迭代"元素",但到目前为止,我的方法都没有奏效。

有什么建议吗?谢谢!:)

问题在于我删除元素的方式。

解决方案不是在元素上调用 destroyRecord(),而是在元素数组上调用 removeObject(),我们将要删除的元素作为一个选项。

如:

var elements = this.get('elements');
elements.forEach(
  function (element) {
    if(element && ! element.get('title')){
      elements.removeObject(element);
    }
  });