Food in foodslist
用 ng-repeat 打印出来。每种食物都有一个复选框。
我在控制器中编写了一个 ng-click 函数,以便favourites
在选中时将食物添加到数组中,如果未选中则将其删除。这行得通。food in favourites
然后我使用相同的模板进行打印。
$scope.toggleFavourite = function (food) {
if (food.favourite === true) {
$scope.favourites.push(food);
} else if (food.favourite === false) {
$scope.favourites.splice($scope.favourites.indexOf(food), 1);
}
}
问题 1:这是放置它的正确位置/解决这个问题的一个好的“Angular”方法吗?
问题 2:我想在原始列表中的项目和收藏列表中的项目之间创建一个“完美镜像”——收藏夹上更改的所有输入都会反映在原始列表中,反之亦然。但是默认情况下不检查收藏夹,即使“ng-checked”=“{{food.favourite}}”,对于收藏夹等于“true”。
如何确保在收藏夹中始终选中此复选框以查找食物?
见 Plunkr
--
更新
在第一个 Plunkr中,Favorites 滑块反映了原始滑块,我无需做任何额外的工作$$hashKey
——元素的部分仍然相同。
然而,在我的实际实现中,Food 内容不断地通过 Ajax 重新加载。因为$$hashKey
不同,元素值之间的“连接”丢失了。
这是通过 Ajax 加载内容的第二个 Plunkr,因此输入值未连接。
我正在寻找一种有效的方法来观察收藏夹和食物中食物输入的变化,基于稳定的东西(例如 food.uid)。如果一个 uid = X 的食物实例的值已更新,则另一个将更新以反映这一点。
我怎样才能做到这一点?