我有一个ionic1应用程序和三个输入。
<label class="item item-input item-stacked-label">
<div class="input-label">
Total (Inc VAT) £
</div>
<input type="number" ng-model="form.gross" placeholder="Total Including VAT">
</label>
<label class="item item-input item-select">
<div class="input-label">
VAT Value
</div>
<select ng-model="form.vat">
<option value="20" selected="">20%</option>
<option value="0">0%</option>
<option value="5">5%</option>
</select>
</label>
<label class="item item-input item-stacked-label">
<div class="input-label">
Amount (Ex VAT) £
</div>
<input type="number" ng-model="form.net" placeholder="Total Including VAT">
</label>
我正在尝试根据总投入进行计算,根据增值税%计算出净值。
第一个问题 - 我永远无法选择被选中的选项。 第二个问题 - 在我的控制器中,净值的计算没有更新
控制器
$scope.form.gross = 0;
$scope.form.vat = 20;
$scope.form.vatValue = $scope.form.gross / 100 * $scope.form.vat;
$scope.form.net = $scope.form.gross - $scope.form.vatValue;
我认为由于双向绑定,应用程序会根据dom中更新的值进行更改?
答案 0 :(得分:1)
第一个问题:只需使用ng-option&amp;有一个包含值的对象数组&amp;选择标签。如果你不想使用那个&amp;想要使用传统的select而不是在选项上使用selected=''
属性,只需在控制器内初始化该字段的值,如
$scope.form.vat= 20;
(使用数字作为值,无论如何你正在对它们进行算术运算)
对于你的第二个问题,只需要对总和&amp;增值字段并调用其中的函数来执行查找vatvalue&amp;的操作。净。因此,每当您对输入进行更改时,都会计算它,因为它目前只在初始条件下发生一次。所以你的功能应该是:
$scope.changed = function(){
$scope.form.vatValue = $scope.form.gross / 100 * $scope.form.vat;
$scope.form.net = $scope.form.gross - $scope.form.vatValue;
}
ng-change="changed()"
在两个输入字段(毛重,增值税)上都有此功能。
这里有正在使用的代码集示例:https://codepen.io/anon/pen/LjPmmx?editors=1010。 现在,您正在为“网络”输入字段。所以你可能想要操纵它,因为你也可以编写另一个函数来计算基于恒定增值值的总和。改变净值并将其称为净场变化。