我正在考虑实施一个"亚马逊愿望清单"撤消我的应用的功能。
我的意思是......
然后点击“删除项目”
点击'撤消&#39>,删除似乎已取消
我的列表控制器目前看起来像这样,
function ListsController($scope, List) {↲
List.get({}, function(lists) {
$scope.lists = lists.objects;
$scope.delete_list = function(index) {
var isConfirmed = confirm('Are you sure you want to delete it?');
if (isConfirmed) {
var targetlist = $scope.lists[index];
List.delete({ listId: targetlist.id },
function(list) {
$scope.lists.splice(index, 1);
}
)
}
}
});
};
但我想按照我的说法启用撤消功能。
角度js中最好的方法是什么?
答案 0 :(得分:1)
如果没有看到List
服务的功能,我无法给出一个确切的示例,但我认为最好的办法是跟踪另一个范围变量中已删除的项目,如果单击撤消,则只需添加它回到列表。
可能是这样的:
$scope.deleted_lists = [];
$scope.delete_list = function(index) {
var isConfirmed = confirm('Are you sure you want to delete it?');
if (isConfirmed) {
var targetlist = $scope.lists[index];
List.delete({ listId: targetlist.id }, function(list) {
$scope.deleted_lists.concat($scope.lists.splice(index, 1));
});
}
};
然后你可以使用ng-repeat(如果你想要多个undos)来显示已删除的项目,点击撤销按钮只需通过.push()将项目添加回列表。