Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $http删除后不刷新Ng repeat_Javascript_Angularjs - Fatal编程技术网

Javascript $http删除后不刷新Ng repeat

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

从我的收藏中删除条目后,已删除对象的值将消失,但行(空白)仍保留。(已尝试应用()…未成功)

我有一个典型的CRUD用户界面,可以查看费用

 <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();
        })
    }
})