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

Javascript Ember.js使用子可枚举的单个成员,javascript,ember.js,Javascript,Ember.js,我试图在绑定到模型的输入上设置一个属性,但我不知道如何访问这个元素。以下是我的控制器操作: acceptEdit: function(item) { items = this.get('items') items.toArray().forEach(function(item){ item.set('isEditing', false); }); items.save(); } 这些项目属于一个类别。以下是类别模型: App.Category = DS.Model.ex

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

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。击打有效,但并不理想:


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

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

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]);

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

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]);

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

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]);

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

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]);

我已经把它标记为一个解决方案,但我觉得有动力去问。这是不是比击打更有效率?我之所以这么说,是因为在这个应用程序中,我可以将所有项的“IsEdit”属性设置为false。是的,这样效率会更高一些。通过更改所有元素,可以激发阵列中每个元素的每个观察者。如果只更改一个,则只会触发一组观察者。取决于你如何使用这些物品,这可能会产生巨大的差异,或者根本没有。很好的解释。我没有这样想过,我已经把它标记为一个解决方案,但我觉得有动力去问。这是不是比击打更有效率?我之所以这么说,是因为在这个应用程序中,我可以将所有项的“IsEdit”属性设置为false。是的,这样效率会更高一些。通过更改所有元素,可以激发阵列中每个元素的每个观察者。如果只更改一个,则只会触发一组观察者。取决于你如何使用这些物品,这可能会产生巨大的差异,或者根本没有。很好的解释。我没有这样想过,我已经把它标记为一个解决方案,但我觉得有动力去问。这是不是比击打更有效率?我之所以这么说,是因为在这个应用程序中,我可以将所有项的“IsEdit”属性设置为false。是的,这样效率会更高一些。通过更改所有元素,可以激发阵列中每个元素的每个观察者。如果只更改一个,则只会触发一组观察者。取决于你如何使用这些物品,这可能会产生巨大的差异,或者根本没有。很好的解释。我没有这样想过,我已经把它标记为一个解决方案,但我觉得有动力去问。这是不是比击打更有效率?我之所以这么说,是因为在这个应用程序中,我可以将所有项的“IsEdit”属性设置为false。是的,这样效率会更高一些。通过更改所有元素,可以激发阵列中每个元素的每个观察者。如果只更改一个,则只会触发一组观察者。取决于你如何使用这些物品,这可能会产生巨大的差异,或者根本没有。很好的解释。我没有那样想过。