代码之家  ›  专栏  ›  技术社区  ›  Mr world wide

如何循环遍历AngularJS中的对象数组

  •  0
  • Mr world wide  · 技术社区  · 7 年前

    我有一个这样的物体:

    {
    "batman":[{"applicantSkillID":"htl2","rating":3,"applicantInterviewerID":"usr1","applicantInterviewerName":"batman","applicantSkillName":"HTML"},
    {"applicantSkillID":"cs43","rating":5,"applicantInterviewerID":"usr1","applicantInterviewerName":"batman","applicantSkillName":"css"}],
    
    "Superman":[{"applicantSkillID":"ht12","rating":3,"applicantInterviewerID":"usr2","applicantInterviewerName":"Superman","applicantSkillName":"HTML"},
    {"applicantSkillID":"cs43","rating":3,"applicantInterviewerID":"usr2","applicantInterviewerName":"Superman","applicantSkillName":"css"}]
    }
    

    现在我正在尝试显示数据 applicantInterviewerName 智慧(蝙蝠侠等级、超人等级等)

    只有一个 应用程序视图名称 我可以通过如下方式获取第一个对象索引:

    <tbody class="table text-left boxShade displayTable">
        <tr ng-repeat="feedBack in c.data.interviewerFeedback">
            <td class="skillName" id="{{feedBack.applicantSkillID}}"> {{feedBack.applicantSkillName}}</td>
            <td>
                <div class="inputRangeDiv">
                    <input class="inputRangeInputSlilder"
                       ng-init="skillScoreForm.skill[feedBack.applicantSkillID] = feedBack.rating"
                       ng-model="skillScoreForm.skill[feedBack.applicantSkillID]"
                       value="0"  
                       oninput="skillOutput.value = skillInput.value"
                       id='skillInput' type="range"
                       min="0" max="5"  ng-disabled="true" />
    
                </div>
            </td>
            <td>
                <div class="inlineFlex">
                    <output id="skillOutput" class="output">{{feedBack.rating}}</output>
                    <p class="applicantCutoffOutputSufixModalTable">/5</p>
                </div>
            </td>
        </tr>
    </tbody>
    

    我怎么能做到我想我肯定我需要用两个 ng-repeats 一个用于 应用程序视图名称 一个是为了 skills 但不知道如何实现它。?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Rohìt Jíndal    7 年前

    var obj = {
    	"batman": [{
    			"applicantSkillID": "htl2",
    			"rating": 3,
    			"applicantInterviewerID": "usr1",
    			"applicantInterviewerName": "batman",
    			"applicantSkillName": "HTML"
    		},
    		{
    			"applicantSkillID": "cs43",
    			"rating": 5,
    			"applicantInterviewerID": "usr1",
    			"applicantInterviewerName": "batman",
    			"applicantSkillName": "css"
    		}
    	],
    
    	"Superman": [{
    			"applicantSkillID": "ht12",
    			"rating": 3,
    			"applicantInterviewerID": "usr2",
    			"applicantInterviewerName": "Superman",
    			"applicantSkillName": "HTML"
    		},
    		{
    			"applicantSkillID": "cs43",
    			"rating": 3,
    			"applicantInterviewerID": "usr2",
    			"applicantInterviewerName": "Superman",
    			"applicantSkillName": "css"
    		}
    	]
    };
    
    function MyCtrl($scope) {
        $scope.items = obj;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app ng-controller="MyCtrl">
        <div ng-repeat="(key,value) in items">
          <div ng-repeat="data in items[key]">
            <span>Name : </span>{{data.applicantInterviewerName}} , <span>Rating : </span>{{data.rating}}
          </div>
        </div>
    </div>