循环访问对象并显示输入字段

时间:2016-04-27 18:02:18

标签: javascript jquery arrays angularjs loops

我有一个由两个数组组成的javascript对象。我们可以调用一个数组适配器和其他条形码。适配器数组将始终具有8个字符串,而条形码将始终具有3个字符串,但最多可包含8个字符串。好的,所以我需要显示适配器字符串,条形码字符串,然后有一个输入字段供用户输入另一个字符串(条形码)。但是,我需要找到条形码数组的长度,而不是仅显示许多输入字段。最简单的方法是什么? jQuery,Angular?

var bar = {
    “adaptors”: ["506-707", "502-701", "501-708", "507-706", "508-704", "505-703", "503-705", "504-702" ],
    “barcodes”:["11-11-1111","11-11-2222","11-11-3333","11-11-4444"]
}

enter image description here

2 个答案:

答案 0 :(得分:1)

试试这个angularJS代码,这里正在运行fiddle

视图

<div ng-controller="MyCtrl">
<div ng-repeat="(index,val) in bar.adaptors">
 {{val}} <input type="text" ng-show="bar.barcodes[index]">
</div>
</div>

控制器

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

 function MyCtrl($scope) {
   $scope.bar = {
      adaptors: ["506-707", "502-701", "501-708", "507-706", "508-704", "505-703", "503-705", "504-702" ],
    barcodes:["11-11-1111","11-11-2222","11-11-3333","11-11-4444"]
 }
}

答案 1 :(得分:0)

假设每个适配器与每个条形码相关联,意味着adaptors[0]barcodes[0]对齐:

您可以对(index,value)使用ng-repeat并使用index或使用每次迭代设置的自动生成的$index值来访问bar.barcodes元素。如果数组元素存在,则使用ng-if仅生成输入。

&#13;
&#13;
angular.module('app',[]).controller("ctrl",["$scope",function($scope){
  $scope.bar = {
    "adaptors": ["506-707", "502-701", 
                 "501-708", "507-706", 
                 "508-704", "505-703", 
                 "503-705", "504-702" ],
    "barcodes":["11-11-1111","11-11-2222","11-11-3333","11-11-4444"]
  };
}]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<table ng-app="app" ng-controller="ctrl">
  <tr ng-repeat="adaptor in bar.adaptors">
    <th>Adaptor</th><td>{{adaptor}}</td>
    <th>Barcode</th><td>
       <input ng-if="bar.barcodes[$index]" ng-model="bar.barcodes[$index]">
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;