2016-09-14 2 views
0

Ich habe eine App, wo ich eine Zwischensumme von Einkaufswagen und dann die Versandkosten, um die Summe zu erhalten. Zuerst wähle ich die Menge der Artikel über eine Auswahl ng-Option, die den Endpreis subTotal der Elemente gibtAngularJS - Update-Bereich, wenn ein anderer Bereich Wert eine Bedingung größer als erfüllt

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

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

Und dann die Versandkosten shippingCosts ausgewählt werden über ng-Optionen

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

Als die insgesamt ist die Summe der beiden Ausgänge:

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

Was will ich erreichen ist shippingCosts gleich Null zu setzen, wenn subTotal > 500. Hier sehen Sie eine funktionierende plunkr Vielen Dank im Voraus!

* Ich habe versucht, eine Variable shippingFinal machen, dass, wenn subTotal > 500 aktualisieren würde, aber es scheint nicht

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

Antwort

1

Verwendung ng-Änderung Preis select. Ausblick:

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

In Controller könnte dies wie folgt aussehen:

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

Beachten Sie, dass dies die shippingCosts in einer Richtung ändern wird, das heißt Sie können nach wie vor aus der Liste auswählen. Lösung hier ist hinzuzufügen ng-change für den Versand, oder deaktivieren, verstecken, etc. die Versand select Feld.

0

Versuchen Sie dieses CODE zu arbeiten:

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

Danke für die Einsicht, aber ich bekomme es nicht zur Arbeit. Siehe aktualisiert plunkr http://plnkr.co/edit/nYwlaeJX0PI6vI6vRZ2y?p=preview – Joe82

Verwandte Themen