自定义管道 管道(过滤器)为过滤数据显示下列list数据

  • pip.ts 文件
import { Pipe, PipeTransform } from '@angular/core';
import { TableType } from './add-student.service'; @Pipe({
name: 'studyProjectType'
})
export class StudyProjectTypePipe implements PipeTransform {
transform( allstudyProjects: any[], typeParams: any): any {
// console.log(typeParams);
return allstudyProjects.filter(type => typeParams.indexOf(type.type) !== -1);
}
}

transform 方法是管道的基本要素。 PipeTransform接口中定义了它. 当每个输入值被传给 transform 方法时,还会带上另一个参数

allstudyProjects 是输入值 ,也就是html 页面中 | 前面的studyProjectList是管道名 typeParams是管道名后的参数 传进管道中

以上这两个为形参,名字自定义,建议命名规范,尤其是写分享管道 . transform 函数里return 是输入数据过滤filter,里面是一个函数

这里的思路是 对比 请求下的数据 studyProjectList 每个列表的type属性 对比下面typeParams, 结果为true 就通过过滤显示

本地数据来源

public types: TabType[] = [
{
name: '课程',
id: 'courseDate',
tags: ['在线课', '线上课', '直播课', '线下课'],
},
{
name: '考试',
id: 'examDate',
tags: ['试卷'],
},
{
name: '作业',
id: 'taskDate',
tags: ['作业'],
},
{
name: '问卷',
id: 'questionnaireDate',
tags: ['问卷'],
},
];
private typeParams: string[] = this.types[0].tags; //初始值
  • html 文件
  <div class="table-responsive">
<!-- {{ studyProjectList | studyProjectType }} -->
<app-project-assign-list [studyProjectList] = "studyProjectList | studyProjectType: typeParams "></app-project-assign-list>
</div>

app-project-assign-list 为列表样式组件

  //click 点击事件 改变types[i]
switchType (i) {
this.typeParams = this.types[i].tags;
}

线上数据来源

 /*
* 数据来源
* addStudentService 服务提供 getStudyProject方法
*/
dataSource: Observable<any>;
// studyProjectList: Array<any> = [];
studyProjectList: TableType[] = [];
constructor(
private addStudentService: AddStudentService,
) {
} ngOnInit() {
this.dataSource = this.addStudentService.getStudyProject();
this.dataSource.subscribe(
(data) => {
console.log(data);
this.studyProjectList = data.students;
}
);
}

ngular6开发不完全笔记(二)-- 管道的更多相关文章

  1. 移动开发基础-学习笔记二-字体图标、less、bootstrap入门

    1.字体图标 1.字体图标都是用svg图片 1.svg图片不失真 2.svg图标由设计师提供 3.为了减少网络请求,会把svg图标转换成字体图标,放到字体文件中,通过字体库的方式使用 2.制作步骤 1 ...

  2. iOS开发ReactiveCocoa学习笔记(二)

    RAC 中常见的宏: 使用宏定义要单独导入 #import <RACEXTScope.h> 一. RAC(TARGET, [KEYPATH, [NIL_VALUE]]):用于给某个对象的某 ...

  3. Google Android SDK开发范例大全笔记 二

    网络设备管理相关相关 代码地址 1 WifiManager LocationManager分别控制 wifi及GPS WifiManager 判断网络状态 ,LocationManager判断定位状态 ...

  4. ngular6开发不完全笔记(三)-- 报错指南

    router Uncaught Error: Template parse errors: 'router-outlet' is not a known element: If 'router-out ...

  5. Android开发艺术探索笔记——View(二)

    Android开发艺术探索笔记--View(二) View的事件分发机制 学习资料: 1.Understanding Android Input Touch Events System Framewo ...

  6. 《MFC游戏开发》笔记二 建立工程、调整窗口

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:/ ...

  7. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  8. Django开发笔记二

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.xadmin添加主题.修改标题页脚和收起左侧菜单 # ...

  9. amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules

    amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules 一.总结 1.见名知意:见那些class名字知意,见函数名知意,见文件名知意 例如(HISTORY.md Web 组件更新历史 ...

随机推荐

  1. Excel 2010版筛选怎么用

    很多人在使用excel表格的时候,不知道这个筛选功能怎么用,可以对我们平时做数据和表格带来哪些帮助.那么,接下来,小敏以excel表格2010版为例,跟大家分享一下这个excel表格筛选功能的使用方法 ...

  2. 删除lv

    author: headsen  chen date: 2018-09-12  11:52:02 [root@sz02 ~]# umount /var/lib/docker [root@sz02 ~] ...

  3. Windows Phone 独立存储查看器

    1.为了查看我们存放在独立存储的数据,我们需要借助独立存储查看器. 2.简单介绍下,IsoStoreSpy 下载地址:http://download.csdn.net/download/lhb1097 ...

  4. spring低版本报错:java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class [*] are only available on

    参考来源:http://blog.csdn.net/sunxiaoyu94/article/details/50492083 使用spring低版本(2.5.6),使用jre 8发现错误: Unexp ...

  5. Python 自学积累(二)

    1. onfigParser 模块用于操作配置文件 注:Parser汉译为“解析”之意. 配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数( ...

  6. Linux 使用 常识记忆

    1.当系统突然死机需要重启时,打开 命令输入端口,使用快捷键 Shift +Alt +F(1或6)打开 ,然后输入 shutdown -r now 如果提示shutdown need to be ro ...

  7. spring+springMVC+Mybatis 中使用@Transcational方式管理事务的配置方法

    springMVC 中,事务通常都在service层控制,当然controller层也可以用事务,只要配置配对,但通常不建议直接在controller层配事务,controller的作用是管理参数以及 ...

  8. Linux常用命令大全(转载)

    最近都在和Linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因, ...

  9. 让ASP.NET OutputCache使用http.sys kernel-mode cache

    在默认情况下,http.sys kerne mode cache只缓存静态文件. 那我们如何让ASP.NET OutputCache直接使用http.sys kerne mode cache?这样缓存 ...

  10. poj 2723 Get Luffy Out 2-SAT

    两个钥匙a,b是一对,隐含矛盾a->!b.b->!a 一个门上的两个钥匙a,b,隐含矛盾!a->b,!b->a(看数据不大,我是直接枚举水的,要打开当前门,没选a的话就一定要选 ...