Ember.js - 仅删除具有removeObject

时间:2016-07-27 18:51:44

标签: javascript arrays ember.js

说明

我有一个非常简单的卡路里跟踪应用程序,它使用Nutritionix API根据用户的输入搜索食物项目。结果将添加到results数组中,然后显示给用户。当用户单击其中一个项目旁边的“添加”按钮时,卡路里会添加到计数器中,食物本身会添加到todaysFood数组中(使用Ember的pushObject)。然后,这将用于显示用户今天在单独的表格中消费的食物。

当用户点击其中一个remove项旁边的todaysFood按钮时,会触发一个操作removeItem,并将点击的项目的索引传递给{{1} }。此索引在Ember的removeItem内使用,以从removeObject数组中删除该项,从而更新视图(从列表中删除该项及其从计数器中获取的卡路里)。

问题

如果将同一项目中的多个项目添加到todaysFood,则只需点击其中一个项目上的todaysFood即可删除remove和视图中的所有实例。这对我来说很有意义,因为文档的例子:

todaysFood

但是,它也只消除了一个项目的卡路里,而不是所有实例。

所以,问题是:在点击var cities = ['Chicago', 'Berlin', 'Lima', 'Chicago']; cities.removeObject('Chicago'); // ['Berlin', 'Lima'] cities.removeObject('Lima'); // ['Berlin'] cities.removeObject('Tokyo') // ['Berlin'] 时,如何仅删除该项目的一个实例?即,如果添加了两个玉米饼,并且我点击一个remove,我只想删除一个(从列表和卡路里中删除)。

以下是我的remove操作:

removeItem

声明

我知道我可能根本没有正确处理这个问题。我愿意接受任何使这更好的建议。谢谢!

1 个答案:

答案 0 :(得分:2)

您要删除的对象索引,以便您可以尝试使用removeAt()方法:

todaysPath.removeAt(index);