Ember.js使用子枚举的单个成员

Ember.js working with single member of child enumerable

本文关键字:单个 成员 枚举 js Ember      更新时间:2023-09-26

我正在尝试在绑定到模型的输入上设置属性,但我不知道如何访问这个单一元素。这是我的控制器操作:

acceptEdit: function(item) {
  items = this.get('items')
  items.toArray().forEach(function(item){
    item.set('isEditing', false);
  });
  items.save();
}

项目属于一个类别。下面是类别模型:

App.Category = DS.Model.extend({
  title: DS.attr('string'),
  items: DS.hasMany('item'),
  itemCount: function() {
    return this.get('items.length');
  }.property('items.@each')
});

因此,当调用acceptEdit时,我可以获取当前路由类别的所有项目,但是我不知道如何获取正在编辑的确切项目。因此,我的不优雅代码只是遍历所有项目以将"isEdit"设置为 false。删除有效,但并不理想:''

有没有办法获得单个项目?

您实际上只有两个选项:搜索数组,或存储当前正在编辑的数组。如果不想存储正在编辑的对象,只需使用 findBy 方法获取正在编辑的对象。

var items = this.get('items');
var editingItem = items.findBy('isEditing', true);
// I use tryInvoke in case one isn't found. That might not be possible for you.
Ember.tryInvoke(editingItem, 'set', ['isEditing', false]);