Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Angularjs - Fatal编程技术网

Javascript 如何迭代对象数组并在AngularJS中打印密钥

Javascript 如何迭代对象数组并在AngularJS中打印密钥,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,下面是我试图在ng repeat和print Key中迭代的对象数组,但无法这样做 $scope.directivesInfo = [ {"ngRepeat": {"enter": true, "leave": true, "move": true, "add": false, "remove": false}}, {"ngView": {"enter": true, "leave": true, "move": false, "add": false, "remove": fa

下面是我试图在ng repeat和print Key中迭代的对象数组,但无法这样做

$scope.directivesInfo = [
    {"ngRepeat": {"enter": true, "leave": true, "move": true, "add": false, "remove": false}},
    {"ngView": {"enter": true, "leave": true, "move": false, "add": false, "remove": false}},
    {"ngInclude": {"enter": true, "leave": true, "move": false, "add": false, "remove": false}},
    {"ngSwitch": {"enter": true, "leave": true, "move": false, "add": false, "remove": false}},
    {"ngIf": {"enter": true, "leave": true, "move": false, "add": false, "remove": false}},
    {"ngClass": {"enter": false, "leave": false, "move": false, "add": true, "remove": true}},
    {"ngShow/ngHide": {"enter": false, "leave": false, "move": false, "add": true, "remove": true}},
    {"form/ngModel": {"enter": false, "leave": false, "move": false, "add": true, "remove": true}},
    {"ngMessages": {"enter": false, "leave": false, "move": false, "add": true, "remove": true}},
    {"ngMessage": {"enter": true, "leave": true, "move": false, "add": false, "remove": false}},
];
以下是我的看法-

<tr ng-repeat="(key, value) in directivesInfo">
终端输出-

编辑-

Plnkr-

看看这个

<div ng-repeat="item in directivesInfo">
    <div ng-repeat="(key,value) in item">{{key}}<div>
</div>

{{key}}
希望有帮助:)

编辑:我已经从你的plnkr中分叉并修改了它。您可以按以下方法操作

这应该可以

  <tr ng-repeat="item in directiveinfo"> 
      <td> {{item.name}} </td>
      <td ng-repeat="(key,value) in item"> 
        <input type=checkbox ng-model="value"> 
      </td>
    </tr>

{{item.name}

这是它的工作原理。

另一种方法是通过循环从数组创建新对象:

。。。。
$scope.directivesInfoObject={};
对于(变量i=0;i<$scope.directivesInfo.length;i++){
var key=Object.keys($scope.directivesInfo[i])[0];
$scope.directivesInfoObject[key]=$scope.directivesInfo[i][key];
}
编辑:然后您可以使用:

    <tr ng-repeat="(key,value) in directivesInfoObject">
      <td> {{key}} </td>
      <td ng-repeat="(innerKey,innerValue) in value">
        <input type=checkbox ng-model="directivesInfoObject[key][innerKey]">
      </td>
    </tr>

{{key}}

这将是一种简单直接的方法:

 <table>
  <tr ng-repeat="item in directivesInfo track by $index"> 
    <td>{{item.name}} </td>
    <td ng-repeat="(key,value) in item" ng-if="$index != 0"> 
      <input type="checkbox" ng-model="item[key]">
    </td>
  </tr>
</table>

指令名
进入
离开
移动
添加
去除
{{item.name}


{{directivesInfo}
我检查了这个解决方案,但是如果它的div是有帮助的,但是检查一下我在
tr
中使用了迭代,所以它的生成
不是我想要解决的问题。我只是想解决钥匙的问题。你也没提到那件事。现在去看plnkr。你的Plnk是错误的,我已经告诉过你它在工作,但是我期待我上面提到的数组类型-试试我的答案。也许,这会对您有所帮助也许,或者,只是将您的数组声明为一个对象,那么,这将是一种动态的方式。@Sherali Turdiyv在您的方法中,如果我取消选中“任意”复选框,则数组的基础项的特定值不会更新。@ShekharKhairnar。谢谢你的关注。您可以看到:。我编辑过
    <tr ng-repeat="(key,value) in directivesInfoObject">
      <td> {{key}} </td>
      <td ng-repeat="(innerKey,innerValue) in value">
        <input type=checkbox ng-model="directivesInfoObject[key][innerKey]">
      </td>
    </tr>
 <table>
  <tr ng-repeat="item in directivesInfo track by $index"> 
    <td>{{item.name}} </td>
    <td ng-repeat="(key,value) in item" ng-if="$index != 0"> 
      <input type="checkbox" ng-model="item[key]">
    </td>
  </tr>
</table>