在这种情况下,我正在向视图中显示学生列表(数组)ngFor:
<li *ngFor="#student of students">{{student.name}}</li>
Run Code Online (Sandbox Code Playgroud)
每当我将其他学生添加到列表中时,它都会更新.
然而,当我给它一个pipe到filter由学生的名字,
<li *ngFor="#student of students | sortByName:queryElem.value ">{{student.name}}</li>
Run Code Online (Sandbox Code Playgroud)
在我在过滤学生姓名字段中输入内容之前,它不会更新列表.
这是plnkr的链接.
Hello_world.html
<h1>Students:</h1>
<label for="newStudentName"></label>
<input type="text" name="newStudentName" placeholder="newStudentName" #newStudentElem>
<button (click)="addNewStudent(newStudentElem.value)">Add New Student</button>
<br>
<input type="text" placeholder="Search" #queryElem (keyup)="0">
<ul>
    <li *ngFor="#student of students | sortByName:queryElem.value ">{{student.name}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
sort_by_name_pipe.ts
import {Pipe} from 'angular2/core';
@Pipe({
    name: 'sortByName'
})
export class SortByNamePipe {
    transform(value, [queryString]) {
        // console.log(value, queryString);
        return value.filter((student) => new RegExp(queryString).test(student.name))
        // return value;
    } …Run Code Online (Sandbox Code Playgroud)