Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 如何在AngularJS中从表单中检索数据长度?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在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

我想知道如何从AngularJs的表单中得到数组的长度

我有这样的表格,例如:

<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,因为原因是未定义的错误