自定义管道在Angular 2中

纳加朱纳·雷迪

我对angular 2框架完全陌生。尝试创建自定义过滤器。

app.component.ts

import {Component} from 'angular2/core';
import {HTTP_PROVIDERS} from 'angular2/http';

@Component({
    selector: 'my-app',
    providers: [UserService,HTTP_PROVIDERS],
    pipes: [SearchPipe],
    templateUrl : `app/user-template.component.html`,
    styles:[`
      .mt20 { margin-top: 20px; }
      .mt30 { margin-top: 30px; }
    `]    
})

export class AppComponent { 
  private users = [];
  onClick(searchStr){
    console.log("textbox value : ",searchStr.value);
  }
  constructor(private _userService : UserService){
        this._userService.getUsersData().subscribe(
            data => this.users = data
        );
  } 
}

的HTML

<div class="row">
    <div class="col-md-4 col-md-offset-4 mt20">
        <div class="input-group">
            <input type="text" class="form-control" #searchStr>
            <span class="input-group-btn">
                    <button class="btn btn-default" type="button" (click)="onClick(searchStr)">Search</button>
            </span>
        </div>
    </div>
</div>
<hr>
<!--       Cards        -->
<div class="container mt30">
    <div class="row">
        <div class="col-md-3" *ngFor="#user of users | search : searchStr, #i=index">
            <div class="card" style="border: 1px solid black; padding:5px; text-align:center;border-radius:5px;">
                <div class="card-block">
                    <h4 class="card-title">{{user.name}}</h4>
                    <h6 class="card-title">{{user.email}}</h6>
                    <p class="card-text">{{user.company.catchPhrase}}</p>
                    <a href="#" class="btn btn-primary">Learn More</a>
                </div>
            </div>
            <div *ngIf="i == 3 || 6">
                <br/>
            </div>

        </div>
    </div>
</div>

管道

import {Pipe} from 'angular2/core';

@Pipe ({
    name : 'search',
    pure: false
})

export class SearchPipe {
    transform (value, args: any[]){
        return value.filter(
            (item) => { if(value.length > 0){
                    for(var i=0; i< value.length; i++){
                        if(value[i].name == args[0].value || value[i].email == args[0].value){
                            console.log("Filtered Object :",value[i]);
                            return value[i];
                        }else{
                            return;
                        }
                    }
                }
            });
    }
}

在这里,最初页面加载时我没有得到列表。当我搜索一个字符串(名称或电子邮件)时,得到总计列表。不完全是正在发生的事情。帮我。

j2L4e

filter接受在数组的每个项目上运行的函数。它必须返回一个布尔值。

您的课程实际上应该像这样:

export class SearchPipe {
  transform (value: any[], args: any[]){
    const search = args[0].value;

    return value.filter(
      (item) => {
          if(item.name == search || item.email == search){
            console.log("Filtered Object :", item);
            return true
          }else{
            return false;
          }
      });
  }
}

或更短的版本:

export class SearchPipe {
  transform (value: any[], args: any[]){
    const search = args[0].value;

    return value.filter(item => 
      (item.name == search || item.email == search)
    );
  }
}

不要搜索空的搜索字符串:

export class SearchPipe {
  transform (value: any[], args: any[]){
    const search = args[0].value;

    if (!search) return value;

    return value.filter(item => 
      (item.name == search || item.email == search)
    );
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

找不到Angular 2自定义管道

来自分类Dev

Angular 2 自定义管道无法读取 null 属性

来自分类Dev

Angular2在自定义管道中使用基本管道

来自分类Dev

如何使自定义管道可用于Angular 2中的所有组件?

来自分类Dev

如何使自定义管道可用于Angular 2中的所有组件?

来自分类Dev

我的自定义管道(过滤器)在Angular 2中不起作用

来自分类Dev

获取“无法找到”错误:Angular 2 应用程序中的自定义管道

来自分类Dev

角度2输入自定义管道

来自分类Dev

在 GoCD 管道中创建自定义管道标签

来自分类Dev

直到保存对象,Angular 2自定义管道才会更新

来自分类Dev

angular2 –通过自定义管道使用全局服务

来自分类Dev

分组数据时无法在 Angular 2 中导入自定义管道

来自分类Dev

在 Angular 6 中过滤用户而不创建自定义管道

来自分类Dev

如何创建在 Angular 中对数据进行分页的自定义管道?

来自分类Dev

Tornado 中的自定义模板管道功能

来自分类Dev

使用自定义管道基于两个输入的Angular2过滤器表

来自分类Dev

angular 2自定义指令OnInit

来自分类Dev

消费angular 2自定义库

来自分类Dev

angular js中的自定义指令

来自分类Dev

Angular js中的自定义“ cellfilter”

来自分类Dev

NgSwitch中的Angular2自定义组件

来自分类Dev

在Angular 2中-覆盖/消除自定义元素?

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

在 Angular 2 中为每个用户自定义 URL

来自分类Dev

如何在发布管道中使用构建管道中的自定义变量

来自分类Dev

在 angular 2 中使用自定义管道,无法加载 html 的加载数据引发错误无法读取未定义的属性

来自分类Dev

Angular2自定义输入-必须定义令牌

来自分类Dev

如何在angular 2中包含打字稿自定义类型定义?

Related 相关文章

  1. 1

    找不到Angular 2自定义管道

  2. 2

    Angular 2 自定义管道无法读取 null 属性

  3. 3

    Angular2在自定义管道中使用基本管道

  4. 4

    如何使自定义管道可用于Angular 2中的所有组件?

  5. 5

    如何使自定义管道可用于Angular 2中的所有组件?

  6. 6

    我的自定义管道(过滤器)在Angular 2中不起作用

  7. 7

    获取“无法找到”错误:Angular 2 应用程序中的自定义管道

  8. 8

    角度2输入自定义管道

  9. 9

    在 GoCD 管道中创建自定义管道标签

  10. 10

    直到保存对象,Angular 2自定义管道才会更新

  11. 11

    angular2 –通过自定义管道使用全局服务

  12. 12

    分组数据时无法在 Angular 2 中导入自定义管道

  13. 13

    在 Angular 6 中过滤用户而不创建自定义管道

  14. 14

    如何创建在 Angular 中对数据进行分页的自定义管道?

  15. 15

    Tornado 中的自定义模板管道功能

  16. 16

    使用自定义管道基于两个输入的Angular2过滤器表

  17. 17

    angular 2自定义指令OnInit

  18. 18

    消费angular 2自定义库

  19. 19

    angular js中的自定义指令

  20. 20

    Angular js中的自定义“ cellfilter”

  21. 21

    NgSwitch中的Angular2自定义组件

  22. 22

    在Angular 2中-覆盖/消除自定义元素?

  23. 23

    Angular2中的自定义值访问器

  24. 24

    Angular2中的自定义值访问器

  25. 25

    在 Angular 2 中为每个用户自定义 URL

  26. 26

    如何在发布管道中使用构建管道中的自定义变量

  27. 27

    在 angular 2 中使用自定义管道,无法加载 html 的加载数据引发错误无法读取未定义的属性

  28. 28

    Angular2自定义输入-必须定义令牌

  29. 29

    如何在angular 2中包含打字稿自定义类型定义?

热门标签

归档