taluo2686 2017-06-17 04:50 采纳率: 0%
浏览 2002
已结题

Angular,条件查询 分页显示

输入某一条件,点击搜索,请求如下:
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: `

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;
}
});
}
}
}

拜托各位了

  • 写回答

1条回答 默认 最新

  • devmiao 2017-06-17 16:03
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB yalmip 可转移负荷的简单建模出错,如何解决?
  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?