2016-11-10 94 views
0

嗨,我有這樣的Angularjs NG-值總和領域

<input type="text" ng-model="tbl.Public"> 
<input type="text" ng-model="tbl.Private"> 
<input type="text" ng-value="tbl.Public--tbl.Private" ng-model="tbl.Total"> 

上面的表格將工作正常,這將總結的公共和私人價值,並把它在tbl.Total領域的投入。我的問題是在編輯表格中,其中值爲tbl.Total,tbl.Public,tbl.Private是從數據庫分配的。

JS

$scope.tbl.Public=10; 
$scope.tbl.Private=25; 
$scope.tbl.Total=35; 

現在從分配給JS的值當我在形式上改變tbl.Public或tbl.Private的價值是不影響一tbl.Total後應該總結這兩個值,並把它在tbl.Total領域。 感謝您的任何幫助和建議。

回答

2

ng-value通常用於單選按鈕和選項元素,它不適合您的用例。

要做的更好的事情是將updateTotal()函數與ng-change結合使用。我還建議將input類型更改爲number,這樣您就不允許用戶對文本進行求和。

<input type="number" ng-model="tbl.Public" ng-change="updateTotal();"> 
<input type="number" ng-model="tbl.Private" ng-change="updateTotal();"> 
<input type="number" ng-model="tbl.Total"> 

在你的控制器:

$scope.updateTotal = function() { 
    $scope.tbl.Total = $scope.tbl.Public + $scope.tbl.Private; 
} 
+0

防止是的,我知道,我可以通過這種方式解決,但只是不知道是否有任何我的代碼解決方案 – sanu

+0

@sanu如果你可以用這種方法解決問題,那麼爲什麼你要使用'ng-value'呢?有什麼優勢? –

+0

實際上,我的表單中有多個總和字段(超過10個),所以如果我按照我的樣式進行操作,則不必在我的js中添加額外的功能,這只是原因,謝謝。 – sanu

0

它應該是這樣的,從串連

$scope.updateTotal = function() { 
    var Public = Number($scope.tbl.Public || 0); 
    var Private = Number($scope.tbl.Private || 0); 
    $scope.tbl.Total = Public + Private; 
}