2016-09-14 2 views
0

私はショッピングカートの小計を取得したアプリを持っています。まず、私は最終的な価格のアイテムAngularJS - 別のスコープの値が条件を超過した場合の更新の範囲

<select ng-options="item.totalprice as item.quantity for item in inventory" ng-model="subTotal"></select> 

    <p>Subtotal: {{subTotal}}$</p><br><br> 

subTotalを出力選択NG-オプションを使用してアイテムの数量を選択し、輸送コストshippingCostsはNG-オプションビーイング

<select ng-options="country.shipping as country.name for country in countries" ng-model="shippingCosts"></select> {{shippingCosts}}$<br><br> 

を介して、選択されています両方の出力の合計:

<p>Total: {{subTotal + shippingCosts}}</p> 

私が達成したい何がゼロに等しいときshippingCostsを設定することですsubTotal > 500。ここでは、作業を見ることができますplunkrありがとうございます!

*私はsubTotal > 500更新してしまう変数shippingFinalを作ってみましたが、

if ($scope.subTotal >= 500) { 
    $scope.shippingFinal = 0 
} else{ 
    $scope.shippingFinal = $scope.shippingCosts 
} 

答えて

1

使用NG-変更をselect。 ビュー:あなたはまだリストから選択することができ、これはshippingCosts 1で向きを変更されること

$scope.adjustShippingCost = function() { 
    $scope.shippingCosts = $scope.finalPrice >= 500 ? 0 : $scope.shippingCosts; 
}; 

注、すなわち:コントローラで

<select ng-options="item.totalprice as item.quantity for item in inventory" ng-model="finalPrice" ng-change="adjustShippingCost()"></select> 

これは、次のようになります。ここでの解決策は、配送のためにng-changeを追加するか、送料selectフィールドを無効にするか、隠すなどです。

0

TRYにTHIS ONE CODE動作していないよう:価格

if ($scope.subTotal >= 500) { 
     $scope.$apply(function() { 
      $scope.shippingFinal = 0 
     }); 
} else{ 
    $scope.shippingFinal = $scope.shippingCosts 
} 
+0

洞察に感謝しますが、私はそれを働かせることはできません。更新されたplunkrを参照してください。http://plnkr.co/edit/nYwlaeJX0PI6vI6vRZ2y?p=preview – Joe82

関連する問題