Angularjs 视图中使用的角度特性(变量)

Angularjs 视图中使用的角度特性(变量),angularjs,angularjs-directive,angularjs-scope,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,我有一份学校名单和一份教师名单 学校 [ { "id": 1, "nameOfInstitution": "Summer Elementary", "schoolLevel": "01304" }, { "id": 2, "nameOfInstitution": "Grady Middle", "schoolLevel": "02400" } ] 教师 [ { "id": "1", "sch

我有一份学校名单和一份教师名单

学校

    [
    {
    "id": 1,
    "nameOfInstitution": "Summer Elementary",
    "schoolLevel": "01304"
    },
    {
    "id": 2,
    "nameOfInstitution": "Grady Middle",
    "schoolLevel": "02400"
    }
    ]
教师

[
{
  "id": "1",
  "school": "1",
  "name": {
    "lastOrSurname": "HARRISON",
    "firstName": "JOHN",
    "middleName": ""
  }
},
{
  "id": "2",
  "school": "1",
  "name": {
    "lastOrSurname": "Nelson",
    "firstName": "Darren",
    "middleName": ""
  }
},
{
  "id": "3",
  "school": "2",
  "name": {
    "lastOrSurname": "Stewart",
    "firstName": "Manuel",
    "middleName": ""
  }
}]
在控制器中,我有

这个问题与这个观点有关。我怎样才能做到这一点

  • 暑期小学
    • 约翰·哈里森
    • 达伦·纳尔逊
  • 格雷迪中学
    • 曼努埃尔·斯图尔特
我一直在使用“ng repeat”指令,但如何仅显示属于每个学校的教师


谢谢

您可以在ng repeat中筛选教师:

<div ng-repeat="school in schools">
  <div ng-repeat="teacher in teachers | filter: {school: school.id}">
最后一点注意:这是可行的,但是如果你有很多学校和老师,那么在显示javascript之前从javascript中进行过滤会更有效,例如,构建一个类似javascript的结构

schools = [{
  nameOfInstitution: ...,
  schoolLevel: ...,
  teachers: [{
    lastOrSurname: ...
  }]
  // ... etc
}];
使用过滤器:

<div ng-repeat="school in schools">
  {{school.nameOfInstitution}}
<p ng-repeat="teacher in teachers | filter:{school: ''+ ($index+1)}:true">
  {{teacher.name.lastOrSurname}}
</p>
</div>

{{school.nameOfInstitution}

{{teacher.name.lastOrSurname}


但是你最好有一些学校的id…

@PetrAveryanov为什么错了?事实上,要想工作,每个学校都需要增加一个
id
。当学校ID是他们的索引时,我又举了一个例子。是的,对不起!我的意思是在地图上显示id。谢谢你的快速回复!谢谢@ChrisF.的精确性,所以我的答案是正确的。你总是需要精确的过滤器ids@PetrAveryanov我仍然不明白你的意思,但我向你保证这是正确的方法。我正在将外部中继器的当前
school.id
与内部中继器的
teacher.school
进行匹配。
schools = [{
  nameOfInstitution: ...,
  schoolLevel: ...,
  teachers: [{
    lastOrSurname: ...
  }]
  // ... etc
}];
<div ng-repeat="school in schools">
  {{school.nameOfInstitution}}
<p ng-repeat="teacher in teachers | filter:{school: ''+ ($index+1)}:true">
  {{teacher.name.lastOrSurname}}
</p>
</div>