Javascript 如何在AngularJS中从表单中检索数据长度?
我想知道如何从AngularJs的表单中得到数组的长度 我有这样的表格,例如:Javascript 如何在AngularJS中从表单中检索数据长度?,javascript,angularjs,Javascript,Angularjs,我想知道如何从AngularJs的表单中得到数组的长度 我有这样的表格,例如: <form ng-submit="sendForm()"> <table> <tr ng-repeat="menu in menus"> <td> {{ menu.label}}</td> <td> <label class="switch"><input type="checkbo
<form ng-submit="sendForm()">
<table>
<tr ng-repeat="menu in menus">
<td> {{ menu.label}}</td>
<td>
<label class="switch"><input type="checkbox" name="watch[]" ng-model="formModel.watchs[ menu.menu_id ]">
<div class="slider blue round"></div>
</label>
</td>
<td>
<label class="switch"><input type="checkbox" name="create[]" ng-model="formModel.create[ menu.menu_id ]">
<div class="slider blue round"></div>
</label>
</td>
<td>
<label class="switch"><input type="checkbox" name="edit[]" ng-model="formModel.edit[ menu.menu_id ]">
<div class="slider round"></div>
</label>
</td>
<td>
<label class="switch"><input type="checkbox" name="del[]" ng-model="formModel.del[ menu.menu_id ]">
<div class="slider red round"></div>
</label>
</td>
</tr>
<tr>
<button type="submit" class="btn btn-default">Save</button>
</tr>
我在这里得到数据:
$scope.sendForm= function(){
var formData= $scope.formModel;
console.log($scope.formModel.length);
for(var i=0; i<formData.length; i++){
var sparseKeys = Object.keys(formData);
console.log(sparseKeys);
}
}
如何获取数据长度?根据代码,formModel看起来是一个对象而不是数组, 您可以使用:
for (var key in $scope.formModel) {
if ($scope.formModel.hasOwnProperty(key)) {
var myVal = $scope.formModel[key];
}
}
它应该是$scope.formData.length吗?不,它不起作用formData’这是javascript变量,他没有得到$scope。如果是javascript变量,为什么在视图中使用它?ng model=formData?我的错误。我已经换了。但这不是问题所在。请您再次澄清错误和预期输出是什么?因为,只要我阅读,您似乎希望通过$scope.formModel.length获得代码中已经存在的$scope.formModel.length的长度,还是希望获得例如$scope.formModel.watchs.length等,以便人们可以帮助您清楚地理解:它是未定义的。但我解决了它。我在$scope.formModel{…}中使用了一个类似于for key的对象循环,但我没有使用forEach,因为原因是未定义的错误