Javascript 角度应用程序拉入整个集合,而不是预期的有限结果

Javascript 角度应用程序拉入整个集合,而不是预期的有限结果,javascript,angular,typescript,pagination,observable,Javascript,Angular,Typescript,Pagination,Observable,我在Angular应用程序中使用observables从API加载数据。因为有很多东西需要拉入,所以我们使用ng2分页来处理分页,并且我们尝试设置它来拉入加载的每个页面的数据。所以,换句话说,最初我们会在第一页加载时提取前15个结果。其他页面也会加载特定于这些页面的数据,仅在单击页码后加载 现在,我可以确认这个api调用正在工作,因为当我在Postman中运行它时,我得到了有限的结果集,而不是预期的整个集合 然而,也就是说,当我尝试将其与我在Angular应用程序中使用的observable连接

我在Angular应用程序中使用observables从API加载数据。因为有很多东西需要拉入,所以我们使用ng2分页来处理分页,并且我们尝试设置它来拉入加载的每个页面的数据。所以,换句话说,最初我们会在第一页加载时提取前15个结果。其他页面也会加载特定于这些页面的数据,仅在单击页码后加载

现在,我可以确认这个api调用正在工作,因为当我在Postman中运行它时,我得到了有限的结果集,而不是预期的整个集合

然而,也就是说,当我尝试将其与我在Angular应用程序中使用的observable连接起来时,我发现它仍然吸引着整个集合

这是我对api调用的定义,这里“page”表示页码,“pagesize”表示每页的结果:

getByCategory(category: string, page, pagesize) {
    const q = encodeURIComponent(stage);
    return this.http.get
    (`https://api.someurl.com/${this.ver}/clients/category/${q}?apikey=${this.key}&page=${this.page}&pagesize=${this.pagesize}`)
        .map((response: Response) => response.json())
        .catch(this.stageErrorsHandler);
}
    stageErrorsHandler(error: Response) {
    console.error(error);
    return Observable.throw(error.json().error || 'Server error');
}
在我的组件中,我像这样订阅,并请求第1页,返回12个结果:

ngOnInit() {
   this.clientService.getByCategory('consulting', 1, 12)
        .subscribe(resRecordsData => {
            this.records = resRecordsData;
            console.log(this.records);
        },
        responseRecordsError => this.errorMsg = responseRecordsError);
}
然后,在视图中,我迭代数组,并通过分页管道传递项,如下所示:

<tr *ngFor="let record of records.data | paginate: { id: 'clients', itemsPerPage: 12, currentPage: page, totalItems: records.count }">

    <pagination-controls class="paginator" (pageChange)="page = $event" id="clients"
            maxSize="15"
            directionLinks="true"
            autoHide="true">
    </pagination-controls>
当我在Ngonit生命周期中记录this.records时,返回的不是一个12个结果的有限列表,而是整个集合。这是我在控制台中看到的:

对象{count:10728,data:Array4037}

我不知道为什么我会得到所有的收藏品。正如我所提到的,当我和邮递员一起尝试时,这个电话就起作用了——但在这里似乎没有达到预期的效果


你知道我在这里遗漏了什么吗?我如何使用observable有问题吗?

您是否查看了Chrome开发工具的网络选项卡中生成的服务调用URL?您的URL模板是否:

https://api.someurl.com/${this.ver}/clients/category/${q}?apikey=${this.key}&page=${this.page}&pagesize=${this.pagesize}

渲染正确吗?由于您正在将参数category:string、page、pagesize传递给函数,请尝试在不使用此参数的情况下引用它们。-e、 g.${page}

谢谢。我很确定这个调用构造正确。但我可以查一下。我在Chrome开发工具中具体访问了什么才能看到这一点?这将显示所有网络请求,包括传递的参数和响应。谢谢,找到了。有趣的是,这确实指出了问题所在。在构造的URL中,“page”和“pagesize”都返回“undefined”。现在我需要弄清楚这是为什么。我会将此信息添加到问题中。对-因为您在模板中使用的是this.page。去掉这个。来自所有函数参数引用的前缀,它应该可以工作。{this.ver}/clients/category/${q}?apikey=${this.key}&page=${page}&pagesize=${pagesize}
https://api.someurl.com/${this.ver}/clients/category/${q}?apikey=${this.key}&page=${this.page}&pagesize=${this.pagesize}