前言:需求
这是一个Spring + Angular前后台分离的项目,目前有一个查看作业列表的功能,并且已经设置了分页和几个查询参数,如图。
现在需要增加一个已评阅和未评阅的查询功能。
Work实体的属性如下:
id: number;
content: string;
createTime: Date;
item = new Item();
score: number;
student = new Student();
updateTime: Date;
reviewed: boolean;
attachments = new Array();
已评阅对应的属性是reviewed,是boolean类型。
目前前台服务层的代码:
// 已经写了分页参数、按学生姓名查找作业、按学号查找作业,共5个参数
getAll(params: {page: number, size: number, studentName?: string, studentSno?: string, itemId?: number }): Observable> {
const _params = {
page: params.page.toLocaleString(),
size: params.size.toLocaleString(),
studentName: params.studentName ? params.studentName : null,
studentNo: params.studentSno ? params.studentSno : null,
itemId: params.itemId ? params.itemId.toLocaleString() : null
};
return this.httpClient.get>(`${this.url}/getAll`, {params: _params});
}
由于前后台中间隔着一层Http,并且boolean具有特殊性,所以向后台传值比较困难,作为新手,我首先能想到几种方法:
后台不动,直接在前台过滤
直接把boolean的变量作为参数
把boolean转换为string类型,通过http传输,到后台转换为boolean
不增加参数,在后台建立三个方法,前台分别请求不同的方法,达到传输boolean的目的
尝试一、前台过滤(失败)
这个是最简单的,因为后台不用动,直接请求整页的数据,只在前台显示未批阅的作业即可。
/**
* 单选框被用户点击时
* @param $event 弹射值
* @param reviewed