我有一个应用程序,我在其中获得购物车小计,然后添加运费以获得总额。首先,我通过选择ng选项选择项目数量,该选项输出项目的最终价格subTotal
<select ng-options="item.totalprice as item.quantity for item in inventory" ng-model="subTotal"></select>
<p>Subtotal: {{subTotal}}$</p><br><br>
然后通过ng-options
选择运费shippingCosts
<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提前致谢!
*我尝试制作一个变量shippingFinal
,它会在subTotal > 500
时更新,但似乎不起作用
if ($scope.subTotal >= 500) {
$scope.shippingFinal = 0
} else{
$scope.shippingFinal = $scope.shippingCosts
}
答案 0 :(得分:1)
对价格select
使用ng-change。
视图:
<select ng-options="item.totalprice as item.quantity for item in inventory" ng-model="finalPrice" ng-change="adjustShippingCost()"></select>
在控制器中,这可能看起来像:
$scope.adjustShippingCost = function() {
$scope.shippingCosts = $scope.finalPrice >= 500 ? 0 : $scope.shippingCosts;
};
请注意,这会在一个方向上更改shippingCosts
,即您仍然可以从列表中选择它们。这里的解决方案是添加ng-change
以便发货,或者停用,隐藏等运费select
字段。
答案 1 :(得分:0)
尝试这个代码:
if ($scope.subTotal >= 500) {
$scope.$apply(function () {
$scope.shippingFinal = 0
});
} else{
$scope.shippingFinal = $scope.shippingCosts
}