Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用函数-JS更新数组中的值_Javascript_Html_Arrays_Angularjs - Fatal编程技术网

Javascript 使用函数-JS更新数组中的值

Javascript 使用函数-JS更新数组中的值,javascript,html,arrays,angularjs,Javascript,Html,Arrays,Angularjs,我对AngularJS比较陌生,我发现自己有点困惑 这是我的控制器: app.controller("calcController", function($scope) { $scope.interests=[{time:'month',amount:0}, {time:'quarter',amount:0}, {time:'year',amount:0}]; $scope.rates=[{rate:0.01,lower:

我对AngularJS比较陌生,我发现自己有点困惑

这是我的控制器:

app.controller("calcController", function($scope) {
 $scope.interests=[{time:'month',amount:0},
                 {time:'quarter',amount:0},
                 {time:'year',amount:0}];

 $scope.rates=[{rate:0.01,lower:0,upper:1000,desc:'£0 - £1000'},
             {rate:0.02,lower:1000,upper:5000,desc:'£1000 - £5000'},
             {rate:0.03,lower:5000,upper:'none',desc:'£5000+'},];

 $scope.balance=0;
 $scope.updatedIntAmount=function(balance){
   if(balance<0){
       return 0;
   }
   else if(balance>=rates[1].lower && balance<rates[1].upper){
       return balance*rates[1].rate;
   }
   else if(balance>=rates[2].lower && balance<rates[2].upper){
       return balance*rates[2].rate;
   }
   else {
       return balance*rates[3].rate;
   }
 }
});
因此,我拥有的是
利息。金额取决于
CalculateIntaunt
,而这反过来又取决于
利率。利率和
余额。我如何获得这些
利息。每当更新
余额时,要更改的金额


谢谢

尝试将
ng change
添加到您的输入字段中,就像这样
。这将允许您在更改输入字段时调用函数,从而在控制器中的函数中执行任何您想要的操作


您可以在官方

上了解更多信息。您可以研究使用
$scope.$watch
观察您的
余额
变量的任何变化,然后相应地更新您的
利息。金额

在控制器中,您将拥有:

$scope.$watch('balance', function(newBalance) {
  $scope.interests.amount = $scope.updatedIntAmount(newBalance);
});

代码中存在很多错误

首先,这里没有类似于rates[1]的内容,您应该将其更改为$scope.rates[1]

第二:updateDataMount函数包含速率[3],这也是错误的,因为根据数组索引规则,速率[2]是最大限制

updateDataMount函数根据插入的余额返回单个值。在这种情况下,更正错误后,只需添加:

{{updatedIntAmount(balance)}}
在html代码中。平衡一旦改变,它就会改变

 $scope.updatedIntAmount=function(balance){
 if(balance<0){
     return 0;
 }
 else if(balance>=$scope.rates[0].lower && balance<$scope.rates[0].upper){
     return balance*$scope.rates[0].rate;
 }
 else if(balance>=$scope.rates[1].lower && balance<$scope.rates[1].upper){
     return balance*$scope.rates[1].rate;
 }
 else {
     return balance*$scope.rates[2].rate;
 }
 }
$scope.updatedIntAmount=函数(余额){

如果(余额=$scope.rates[0]。余额下限(&&balance=$scope.rates[1]。余额下限(&&balance)能否举例说明余额的变化会导致随后的利息.amount的变化?能否使利息.amount的值等于某些计算?
 $scope.updatedIntAmount=function(balance){
 if(balance<0){
     return 0;
 }
 else if(balance>=$scope.rates[0].lower && balance<$scope.rates[0].upper){
     return balance*$scope.rates[0].rate;
 }
 else if(balance>=$scope.rates[1].lower && balance<$scope.rates[1].upper){
     return balance*$scope.rates[1].rate;
 }
 else {
     return balance*$scope.rates[2].rate;
 }
 }