2015-08-16 23 views
2

我有这个集合:如何使用Id在Angularjs中显示来自集合的项目?

this.students = [ 
     { id: 1, courseId: 1, text: 'John' }, 
     { id: 2, courseId: 1, text: 'Andye' }, 
     { id: 3, courseId: 1, text: 'Inga' }, 
     { id: 4, courseId: 2, text: 'Jerry' } 
    ]; 

我有这样的标签:

  <div class=""> 
       <label class="control-label">Student Name: </label> 
       <label class="control-label">"show student name"</label> 
      </div> 

我想ID显示例如学生姓名= 3, 在这个标签:

<label class="control-label">"show student name"</label> 

从AngularJS的集合中通过Id显示文本的优雅方式是什么?

+0

你可以像'ng-repeat ='学生一样在vm.students | filter:{id:3}“'ng-ng'中重复'' –

+2

为什么你的模型中有一群学生如果目标是只显示其中的一个?似乎有一个更大的设计问题。 –

回答

0

实现预期结果的最简洁的方法是定义一个方法,根据某些标准返回所需的任何学生,在本例中为id

// controller.js 
this.getStudentById = function(id) { 
    for(let i = 0; i < this.students.length; i++) { 
     if(this.students[i].id === id) { 
      return this.students[i]; 
     } 
    } 
} 

// template.html 
<label class="control-label">{{getStudentById(<id>).name}}</label> 

@JB Nizet is correct但是,如果您只想一个学生,你可以考虑从你的“学生服务”,而不是维护学生说,然后你的控制器中被过滤的阵列只读取该学生。

相关问题