无法读取属性' bind'未定义的搜索过滤器

时间:2016-11-19 19:30:13

标签: angular

我收到错误Cannot read property 'bind' of undefined 我创建了一个自定义过滤器来按名称过滤掉搜索字段,但我收到此错误并且无法通过它。任何帮助表示赞赏。 还要跟进问题。在Angular2的最新版本中,我们是否不再在@Component下添加过滤器:[FilterArrayPipe],但是在NGModule声明中通过app.module.ts添加它?

filter.pipe.ts

           import {Pipe, PipeTransform} from '@angular/core';

      @Pipe({name: 'filter'})
      export class FilterArrayPipe implements PipeTransform{

      transform(value, args){
    if(!args || !args[0]) {
      return value;

      }

  else if(value) {
    return value.filter(item => {
  for (let key in item){

  if((typeof item[key] === 'string' || item[key] instanceof String)&&
  (item[key].indexOf(args[0]) !== -1)) {
  return true;

  }

  }


    })
  }

  }

  }

users.component.html

<div class="container">

  <div class="input-group">
        <input type="text" id="search" class="form-control" placeholder="Search Users" [(ngModel)]= "filterText">

      </div><!-- /input-group -->
      <br>
  <table class="table table-bordered">
    <thead>
      <tr>
        <th>Name</th>
        <th>Username</th>
        <th>Email</th>
        <th>Phone</th>
      </tr>
    </thead>
    <tbody *ngFor="let user of _users | filter: filterText"  >
      <tr>
        <td>{{user.name}}</td>
        <td>{{user.username}}</td>
        <td>{{user.email}}</td>
          <td>{{user.phone}}</td>
      </tr>

    </tbody>
  </table>
</div>

enter image description here

1 个答案:

答案 0 :(得分:0)

你有一个错字。您正在实施SELECT [t0].[StadiumName] FROM [dbo].[PFStadium] AS [t0] INNER JOIN [dbo].[PFEvent] AS [t1] ON ([t0].[Stadium_ID]) = @p0 方法时应该tranform

下一个导入transform并声明类似PipeTransform的类使TypeScript编译器失败并警告您错误的方法可能对您有所帮助。