我有一个json对象,通过ng-repeat中的复选框加载。它列出了可能的服务,并且我试图访问在提交表单时已经检查过的服务。
我正在加载复选框:
<label style="margin-right:10px" ng-repeat="item in dsServces">
<input
type="checkbox"
name="selectedFruits"
value="{{item.DefaultServiceID}}"
ng-model="expense.dsService[item.DefaultServiceName]"
> {{item.DefaultServiceName}}
</label>
我可以看到通过测试来构建费用:
{{ expense.dsService }}
返回(当选择一对时)
{"Email":true,"Backups":true}
但是我无法解决如何循环,所以它只是说服务名称,所以我可以将它们添加到客户。
在后端,我有:
$scope.expense = {
tags: []
};
关于提交:
angular.forEach($scope.expense, function(item) {
console.log(item);
});
哪个吐出Object {Email: true, Backups: true}
但我无法设置一个循环,它只返回哪些对象都是真的。
我的主要目标是拥有像
这样的东西angular.forEach(forloop) {
//service.item should be like 'Email' whatever the item.DefaultServiceName is
// the loop should be all items that are checked
addService(service.item);
});
答案 0 :(得分:0)
如果我理解正确,您希望将对象的键值推送到数组中。如果是这种情况,只需对forEach()
像这样:
// The first parameter is what you want to loop through
// Second is the iterator, you can separate out the key and values here
// The third is the context, since I put the array we want to push to in here
// we just need to call `this.push()` within the iterator
angular.forEach($scope.expense, function(value, key) {
this.push(key);
}, $scope.expense.tags);
如果有帮助,请告诉我。