输入某一条件,点击搜索,请求如下:
find_by_spec?sort=updateDate,desc&gameType=2
在此基础上,点击下一页,请求如下:
find_by_spec?sort=updateDate,DESC&page=1
问题:限制条件gameType=2 丢失了 ,所以点击第二页之后,所显示的数据,是在没有任何限制条件下的数据,怎样才能实现 条件查询之后,点击下一页之后,所显示的仍是条件之下的数据呢(假设表单数据较多,一页20条,放不下!需要点击下一页)
分页组件://///////////////////////////////////////////////////////////////
import {Component, Input, OnInit} from '@angular/core';
import {Router} from '@angular/router';
@Component({
selector: 'app-page-helper',
template: `
-
共:{{pageModel?.page?.totalElements}} 条,每页{{pageModel?.page?.size}} 条
-
(click)="page=0;nextPage()">首页
-
(click)="page=page-1;nextPage()" tabindex="-1">上一页
<li class="page-item"
*ngFor="let item of pageItemLength()"
[class.active]="pageModel?.page?.number==item">
<a class="page-link" href="javascript:void(0);"
(click)="page=item;nextPage()">{{item + 1}}</a>
</li>
<li class="page-item" [class.disabled]="!pageModel?._links?.next">
<a class="page-link"href="javascript:void(0);"
(click)="page=page+1;nextPage()" >下一页</a>
</li>
<li class="page-item" [class.disabled]="!pageModel?._links?.last">
<a class="page-link" href="javascript:void(0);"
(click)="page=pageModel.page.totalPages-1;nextPage()">最后一页</a>
</li>
</ul>
</nav>
</div>
</div>
</div>`
})
export class PageHelperComponent implements OnInit {
// 当前页
page = 0;
url = '';
@Input() pageModel: any;
constructor(private router: Router) {
}
ngOnInit(): void {
this.url = this.router.url;
}
nextPage()
{
{ this.router.navigate([this.url, {page: this.page}]);}
}
pageItemLength(): number[] {
if (!this.pageModel) {
return [];
}
const page = this.pageModel.page.number;
const pages = this.pageModel.page.totalPages;
const values: number[] = [];
if (pages > 10) {
for (let i = 6; i > 0; i--) {
if (page - i >= 0) {
values.push(page - i);
}
}
for (let x = 0; x < 6; x++) {
if (page + x < pages) {
values.push(page + x);
}
}
} else {
for (let y = 0; y < pages; y++) {
values.push(y);
}
}
return values;
}
}
市场折扣的组件:///////////////////////////////////////////////////
import {Component, OnInit} from '@angular/core';
import {MarketService} from '../market.service';
import {ActivatedRoute} from '@angular/router';
import {SearchModel} from '../../shared/search.model';
@Component({
templateUrl: './market-rebate-list.component.html'
})
export class MarketRebateListComponent implements OnInit {
searchModel = new SearchModel();
pageModel: any;
platformModel: any;
proposerModel: any;
constructor(private server: MarketService,
private route: ActivatedRoute) {
}
ngOnInit(): void {
this.route.data.forEach((data: { model: any }) => this.pageModel = data.model);
/* //获取所有平台*/
this.server.getModels('/api/market_rebate/search/platforms').subscribe(res =>
this.platformModel = res);
/* //获取所有提交人*/
this.server.getModels('/api/market_rebate/search/verifier').subscribe(res =>
this.proposerModel = res);
}
searchData() {
this.server.getModels('/api/market_rebate/search/find_by_spec?sort=updateDate,desc'
+ this.searchModel.toQueryParams()).subscribe(res => this.pageModel = res);
}
deleteRebate(model: any) {
if (confirm('你确定要删除折扣ID为:' + model.id + '的折扣吗?')) {
this.server.postModel('/api/market_rebate/delete', model).subscribe((res: any) => this.refreshData());
}
}
refreshData() {
this.server.getModels(this.pageModel._links.self.href)
.subscribe(data => this.pageModel = data);
}
}
市场组件预加载://///////////////////////////////////////////////
import {Injectable} from '@angular/core';
import {ActivatedRouteSnapshot, Resolve} from '@angular/router';
import {MarketService} from '../market.service';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class MarketRebateResolve implements Resolve {
constructor(private server: MarketService) {
}
resolve(route: ActivatedRouteSnapshot): Observable | boolean {
const params = route.params['id'];
if (params) {
if (params !== 'add') {
const id = +route.params['id'];
return this.server.getModels('/api/market_rebates/' + id).map(data => {
if (data) {
return data;
}
return true;
});
}
} else {
const page = route.params['page'] ? +route.params['page'] : 0;
return this.server.getModels('/api/market_rebate/search/find_by_spec?sort=updateDate,DESC&page=' + page).map(data => {
if (data) {
return data;
} else {
return false;
}
});
}
}
}
拜托各位了