2016-12-25 1 views
0

インターネットショップを作成していて、ユーザーカートのページを管理しているときにdeleteFromCart()を呼び出した後に角度表示が表示されません。私は何が欠けていますか?私は.then(F())との約束をしましたが、それは JSコードを動作していないよう:角度()は動作していません(リクエストを送信した後に表示を更新していません)

var url = $location.absUrl() + "/products"; 

getProducts(); 
function getProducts() { 
    $http.get(url).then(function (response) { 
     $scope.total = 0; 
     $scope.products = response.data; 
     $scope.products.forEach(function (product) { 
      $scope.total = $scope.total + product.price; 
     }) 
    }); 
} 

$scope.deleteFromCart = function (productId) { 
    $http.get(url + '/' + productId).then(function() { 
     getProducts(); 
    }); 
} 

ビュー:あなたはページを更新したくないのはなぜ

<div class="panel panel-primary" ng-controller="CartCtrl"> 
    <div class="panel-heading"> 
     <h3 class="panel-title">Your Cart</h3> 
    </div> 
    <div class="panel-body "> 
     <table class="table table-bordered"> 
      <thead> 
      <tr> 
       <th>Product name</th> 
       <th>Price</th> 
       <th>Quantity</th> 
       <th class="text-center">Action</th> 
      </tr> 
      </thead> 
      <tr ng-repeat="product in products"> 
       <td>{{product.title}}</td> 
       <td>{{product.price}}$</td> 
       <td>3</td> 
       <td class="text-center"> 
        <a href="#" ng-click="deleteFromCart(product.id)" class="btn btn-danger btn-xs">Remove</a> 
       </td> 
      </tr> 



     </table> 
     <h4><span class="label label-primary pull-left">TOTAL : {{total}}$</span></h4> 
     <button class="btn btn-success pull-right">Confirm Order</button> 
    </div> 

</div> 

答えて

1

だけからその製品を削除しますリスト

<td class="text-center"> 
    <a href="#" ng-click="deleteFromCart(product.id,$index)" class="btn btn-danger btn-xs">Remove</a> 
    </td> 

$scope.deleteFromCart = function (productId,index) { 
    $http.get(url + '/' + productId).then(function() { 
     $scope.products.splice(index,1); 
    }); 
} 
+0

あなたはそれをクライアント側で削除し、そのオブジェクトがサーバ上で削除されているかどうかはわかりませんが、それは良い習慣ですか? – qwd412

+0

サーバー側からアイテムが削除されたことを確認した後、クライアント側から削除します。そして、機能はその項目が正常に削除されたことに対応します。 –

+0

私はそれがあまりにも複雑だと思う、私は削除要求を送信し、製品の配列をリフレッシュするので、私は解決策は非常にシンプルですが、私は1つの詳細、 – qwd412

関連する問題