响应编程和管道

import {ReactiveFormsModule, FormsModule, FormControl} from '@angular/forms';
imports: [
    BrowserModule,
    AppRoutingModule,

    // 把路由注入到主模块
    RouterModule.forRoot(routeConfig),
    FormsModule,

    // RouterModule.forChild(routeConfig)
    // 相应式编程模块
    ReactiveFormsModule
  ],
  providers: [ProductService],
  bootstrap: [AppComponent]
})
export class AppModule { }

filter.pipe.ts

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

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

  transform(list: any[], filterName: string, keyword: string): unknown {
    if (!filterName || !keyword){
      return list;
    }
    return list.filter(item =>
      item[filterName].indexOf(keyword) >= 0
    );
  }

}

product.ts

import {FormControl } from '@angular/forms';
import {debounceTime} from 'rxjs/operators';
export class ProductComponent implements OnInit {

  public products: Product[];
  public keywords: string;
  public titleFilter: FormControl = new FormControl();
  constructor(private productService: ProductService) {
    this.titleFilter.valueChanges.pipe(debounceTime(500)).subscribe(
      value => this.keywords = value
    );
  }

4.product.html

 <div class="form-group">
      <label>
        <input class="form-control" placeholder="请输入商品名称" [formControl]="titleFilter">
      </label>
    </div>
<div  *ngFor="let product of products | filter: 'title': keywords" class="col-md-4 col-lg-6 col-sm-9">

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值