Javascript $http删除后不刷新Ng repeat
从我的收藏中删除条目后,已删除对象的值将消失,但行(空白)仍保留。(已尝试应用()…未成功) 我有一个典型的CRUD用户界面,可以查看费用Javascript $http删除后不刷新Ng repeat,javascript,angularjs,Javascript,Angularjs,从我的收藏中删除条目后,已删除对象的值将消失,但行(空白)仍保留。(已尝试应用()…未成功) 我有一个典型的CRUD用户界面,可以查看费用 <table class="table table-striped"> <tr> <td>Titre</td> <td>Date</td> <td>Montant</td> <td&g
<table class="table table-striped">
<tr>
<td>Titre</td>
<td>Date</td>
<td>Montant</td>
<td>Méthode de paiement</td>
<td></td>
<td></td>
</tr>
<tr ng-repeat="expense in expenses">
<td>{{expense.title}}</td>
<td>{{expense.date}}</td>
<td>{{expense.amount}}</td>
<td>{{expense.paiementMethod}}</td>
<td><a class="btn btn-primary" ui-sref="editExpense({id:expense._id})">Editer</a></td>
<td><a class="btn btn-primary" ng-click="deleteExpense(expense)">Supprimer</a> </td>
</tr>
</table>
这是由一个费用资源工厂提供的
angular.module('ExpenseService', []).factory('Expense', function($resource) {
return $resource('api/expenses/:id',{
id:'@_id'},{
update:{method:'PUT'}, delete:{method:'DELETE'}})
}))
与Json API通信(后面是mongodb和node/express)
因此,我使用ngResource&ui.router来处理状态场景
注意:如果我从删除功能手动刷新,一切正常,但这是我们要做的事情吗
.controller('ExpenseListController', function ($scope, $state, $window,Expense) {
$scope.expenses = Expense.query();
$scope.deleteExpense = function (expense) {
expense.$delete(function () {
$scope.expenses = Expense.query();
})
}
})
您必须以某种方式将其从作用域上的
expenses
数组中删除,无论是通过重新查询还是在成功删除服务器端后从数组中删除。$http
请求本身不会影响$scope.expenses
对象。谢谢您的回答。很明显,$http(通过$resource)不会影响作用域中的任何对象。我添加了$scope.expenses.splice($scope.expenses.indexOf(expense),1)代码>成功删除服务器端后,它像一个魔咒一样工作。是的。您始终可以将费用实例化为一种资源类型,并让http请求在服务内部修改对象,但这是不可能的。请注意,$scope.expenses.remove(费用)完成了这项工作。我了解到基于索引的删除是JS中唯一可靠的删除。再来一次。
.controller('ExpenseListController', function ($scope, $state, $window,Expense) {
$scope.expenses = Expense.query();
$scope.deleteExpense = function (expense) {
expense.$delete(function () {
$scope.expenses = Expense.query();
})
}
})