从ng-value指令更新ng-model

时间:2014-12-28 11:15:07

标签: angularjs angular-ngmodel

我有一种情况,我在表单中有几个只读字段,与其他字段一起显示问题

您可以看到las两个输入为readonly,它们是计算输入,其中总借记由totalDebit $scope函数计算,总余额由totalCredit()计算$scope上的函数。问题是输入仅反映ng-model值,两个输入均为零,并且不从计算函数中获取值。简化的控制器是

app.controller('myController', ['$scope' ,function($scope){
$scope.credit = 0;
$scope.debit = 0;
$scope.debitSum = 0;
$scope.creditSum = 0;

$scope.totalCredit = function(){
   return $scope.credit + 200; //just to show that it is calculated field
}

$scope.totalDebit = function(){
   return $scope.debit + 200; //just to show that it is calculated field
}

}]);

如果从只读输入中删除ng-model指令,则它们将分别从totalDebittotalCredit函数中提取它们的值。但我希望他们使用函数中的值,并更新$scopetotalDebit的{​​{1}}属性。以下是此代码的plunker

1 个答案:

答案 0 :(得分:3)

不应该在这里回答(为什么ng值没有达到预期的效果)

ngValue

  

将给定表达式绑定到 <option> input[radio] 的值,以便在选择元素时,该元素的ngModel设置为绑定值。

这不是我们的情况......

  

因为,ngValue是在CHANGE上触发的。当我们在<select>

中选择广播或某个选项时

因此,ng-value在这种情况下不是正确的设置。

我们可以这样调整:

<input name="totalDebit" value="{{totalDebit()}}" readonly="" />
<input name="totalCredit" value="{{totalCredit()}}" readonly="" />

请参阅updated plunker