2016-04-19 6 views
0

「カートに追加」ボタンを有効にしたり無効にしたりするのに役立つ必要がありますが、今すぐ「カートに追加」をクリックすると、ボタンをすぐにクリックしますが、空白のキャンバスをクリックして無効にする必要があります。ng-click and ng-disabled「カートに追加」機能

HTML

<div id="shoppingCart"> 
    <form name="addItemsForm" method="POST"> 
     <input type="hidden" name="type" value="Package" /> 
      <ul> 
       <li ng-repeat="df in item.delivery_formats"> 
        <button type="button" name="addToCartBtn" id="{{df.price_id}}" 
        value="{{df.price_id}}" class="btn btn-default" ng-model="$parent.addToCartBtn" 
ng-click="addToCart(df.price_id, df);" ng-disabled="checkBtnState(df.button_state)"/> <span class="fa fa-shopping-cart" style="float: left;"></span> <strong>{{df.delivery_format}} - ${{df.price}}</strong> 

        </button> 
       </li> 
      </ul> 
    </form> 
</div> 

角度& JS

$scope.checkBtnState = function(btn_state){ 
    if(btn_state == 'disabled') { 
    return true; 
    } 
    else { 
    return false; 
    } 
} 
$scope.addToCart = function(id, dfObj){ 
    $http({ 
    url: "/shop/add.php", 
    method: "POST", 
    data: {id: id} 
    }) 
    .success(function(){ 
    $('#cart').load('/php/cart-items.php'); 
    dfObj.button_state = 'disabled'; 
    }) 
    .error(function(){ 
    alert('error'); 
    }); 
} 
+0

私は、あなたは 'then'の部分でそれを無効にして、値 'button_state'がすぐに更新されることを期待しています! –

答えて

2

その非常に些細なものの - 約束の外にそれを置きます。

$scope.addToCart = function(id, dfObj){ 
    $http({ 
     url: "/shop/add.php", 
     method: "POST", 
     data: {id: id} 
    }).then(function(){ 
     $('#cart').load('/php/cart-items.php');   
    }) 
    .error(function(){ 
     alert('error'); 
    }); 
    dfObj.button_state = 'disabled'; 
} 
関連する問題