我有两个功能:一个用于删除数据,另一个用于更新数据。数据来自Resource.query()。
我使用ng-repeat
来检查集合中的每个元素。由于每个元素都是一个Resource对象,我想我应该可以应用$ save,$ remove,... operations。
Html可以简单如下:
<tr ng-repeat="data in data_collection">
<td>
<a class="btn btn-info" ng-click="togglePublish(data,'country')">RELEASE</a>
</td>
<td>
<div>
<button class='btn btn-danger' ng-click="remove(data)">Delete</button>
</div>
</td>
</tr>
为什么我这样做:
// Arg: data is a Resource object from the collection
$scope.remove = function(data){
data.$remove(); // <----- THIS DOES NOT MODIFY THE VIEW
}
但这是正确更新数据:
// Arg: original_data is a Resource object from collection
$scope.togglePublish = function(original_data, country){
// Deep copy
var copy = angular.copy(original_data);
// Modifications over the copy
copy = toogleRegionPublication(copy, country);
Resource().update(copy).$promise.then(function(){
// If update was taken, then update view value
original_data.regions = copy.regions; // <--- THIS MODIFIES THE VIEW
});
}
为什么其中一个对视图有影响但不涉及$ remove操作?为什么呢?
答案 0 :(得分:1)
据我了解
$除去
只是一个HTTP DELETE方法调用你的restful资源。
答案 1 :(得分:0)
要从视图中删除data
对象,我认为您可以将其从data_collection
数组中删除。 See how to remove object from array.
但是,如果您仍需要调用http DELETE
从数据库中删除data
对象,则还需要执行此操作。