无线电更改值Angular.js

时间:2016-10-05 10:20:47

标签: angularjs

http://plnkr.co/edit/TcNhLcSyDELsPESh9eou?p=preview

选择两个收音机后,如何使该值始终发生变化? 有人可以帮我吗?

    $scope.opts = {
            val1: false,
            val2: false,
            val3: false,
            val4: false };  

   $scope.computedTotal = function () {   
 var opts = $scope.opts;
   if(opts.val1==true && opts.val3==true){
   return $scope.basPremium * 0.92;    
 } else if(opts.val1==true && opts.val4==true){
   return ($scope.basPremium * 0.95)*1.04;    
 } else if(opts.val2==true && opts.val3==true) {
   return ($scope.basPremium * 0.98)*1.08;    
 } else if(opts.val2==true && opts.val4==true) {
   return $scope.basPremium * 1.12;    
 } };
<input type="radio" name="rdoResult" ng-model="opts.val1" ng-value="true"/> bezszkodowe ubezpieczenie 5%<br>
<input type="radio" name="rdoResult" ng-model="opts.val2" ng-value="true"/> za wystąpienie szkody w okresie ubezpiczenie zwyżka 8%<br>
<br>
<input type="radio" name="paid"      ng-model="opts.val3" ng-value="true"/> płatność jednorazowa żniżka 2%<br>
<input type="radio" name="paid"      ng-model="opts.val4" ng-value="true"/> płatność w 4 ratach zwyżka 4%<br>

1 个答案:

答案 0 :(得分:0)

首次运行程序时,所有模型属性都设置了默认值。因此,当您第一次开始选择单选按钮时,AngularJS会检测到更改,并调用computeTotal()函数。

但是,一旦选择了所有可能的单选按钮组合,就会设置模型值,并且由于未检测到任何更改,因此不会调用computeTotal()(直到您更改输入值)。

解决方案:

尝试在返回opts.val函数值后将false重置为computeTotal()