$ http.delete之后的Angular [$ interpolate:interr]

时间:2014-05-31 23:02:05

标签: javascript angularjs

当我从客户端发送DELETE请求并且服务器确实是服务器端的事情,然后将'消息'发送回客户端已成功删除记录,Angular抛弃了一个奇怪的插值错误。

这是我的删除功能(客户端):

$scope.deleteProduct = function () {
    $http.delete('/api/products/product/delete/' + $scope.selectedProduct._id)
    .success(function (data) {
        console.log(data);
        $scope.selectedProduct = {};
        $scope.products = data;
        $scope.tab = 'view-all';
    })
    .error(function (data) {
        console.log('Error deleting product');
    })
};

问题似乎在于行$scope.products = data;和数据自动刷新以匹配数据库中更新的记录。如果我删除它,没有客户端错误,但我必须手动刷新页面才能看到更新。

这是服务器端DELETE:

app.delete('/api/products/product/delete/:_id', Auth.ensureAdmin, function (req, res) {
    console.log(req.params);
    products.productsModel.remove({ _id: req.params._id }, function (err, product) {
        if (err)
            res.send(err)
        res.json(product);
        console.log('Deleted product');
    });
});

1 个答案:

答案 0 :(得分:1)

从服务器返回结果时,您将获得已删除产品的ID。因此不应将产品分配给此号码。您应该重复产品并删除已删除的产品。