我有一个非常简单的卡路里跟踪应用程序,它使用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
我知道我可能根本没有正确处理这个问题。我愿意接受任何使这更好的建议。谢谢!