Angularjs 使用复选框和捕获值重复ng

Angularjs 使用复选框和捕获值重复ng,angularjs,checkbox,ng-repeat,Angularjs,Checkbox,Ng Repeat,angular和js仍然是新手。我有一份清单: <ul ng-repeat="rate in resources"> <li> <input type="checkbox" ng-model="isSelected" ng-change="appendList(rate)"> </li> </ul> 但我想在fastrates中添加一个键、值对,如下所示: $scope.rateValues = { 'rates':

angular和js仍然是新手。我有一份清单:

<ul ng-repeat="rate in resources">
    <li> <input type="checkbox" ng-model="isSelected" ng-change="appendList(rate)"> </li>
</ul>
但我想在fastrates中添加一个键、值对,如下所示:

$scope.rateValues = {
    'rates': {
        'fastrates': {
            'value': '100',
            'value': '200',
            'value': '300',
            'value': '400',
        }
    }
};
我想我的控制器中的ng change函数无法处理这个问题。我知道这还远未完成,但至少价值发生了变化。我需要让它检查是否已添加,如果已添加,则将其从对象的键、值中删除。如果没有检查,他们会检查。它需要创建一个新的“值”:fastrates对象中的rate对

  $scope.appendList = function(rate){
      $scope.rateValues.rates.fastrates.value = rate
   }

这是我开始的plnkr。关于如何实现这一点,有什么脚本建议吗?

您不能多次使用同一个键。可以使用对象数组

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {

  $scope.resources = {value:['100','200','300', '400']}

    $scope.rateValues = {
        'rates': {
            'fastrates': []
        }
    };

  $scope.appendList = function(rate){
      $scope.rateValues.rates.fastrates.push({ value: rate });
  }
});
取消选中复选框时不要忘记删除值。

取消选中复选框时从数组中删除值

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {

  $scope.resources = {
    value: ['100', '200', '300', '400']
  }

$scope.rateValues = {
    'rates': {
        'fastrates': {
            'value': [],
        }
    }
};
  $scope.appendList = function(rate) {



    var index = $scope.rateValues.rates.fastrates.value.indexOf(rate);


    if (index < 0) {
      $scope.rateValues.rates.fastrates.value.push(rate);
    } else {

      $scope.rateValues.rates.fastrates.value.splice(index, 1);
    }


  }
});
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.resources={
值:['100','200','300','400']
}
$scope.rateValues={
“费率”:{
“快速利率”:{
“值”:[],
}
}
};
$scope.appendList=函数(速率){
var指数=$scope.rateValues.rates.fastrates.value.indexOf(汇率);
如果(指数<0){
$scope.rateValues.rates.fastrates.value.push(速率);
}否则{
$scope.rateValues.rates.fastrates.value.splice(索引1);
}
}
});

fastrates
应该是对象,或者更确切地说是值的数组?啊。谢谢你,我已经脑死亡了。这些数据被发送到XML中,所以我想我必须重复相同的键。。。
var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {

  $scope.resources = {
    value: ['100', '200', '300', '400']
  }

$scope.rateValues = {
    'rates': {
        'fastrates': {
            'value': [],
        }
    }
};
  $scope.appendList = function(rate) {



    var index = $scope.rateValues.rates.fastrates.value.indexOf(rate);


    if (index < 0) {
      $scope.rateValues.rates.fastrates.value.push(rate);
    } else {

      $scope.rateValues.rates.fastrates.value.splice(index, 1);
    }


  }
});