调用函数时更改参数值 angular
change value of params when calling function angular
当我调用下面的函数之一时,我需要更改 pageNumber 和 titulo 的参数值...但是当我调用这些函数时,这些参数保持不变,示例
http://miurl.com/jsonapi/views/busqueda_avanzada/informes?page=${this.pageNumber}&views-filter[titulo]=${this.titulo}
; //pageNumber returns 0 这是初始值,但是当我调用 getPage() 函数时仍然是 returns 0,每次调用它应该 return 1 然后 2。
这个想法是用 Angular 创建一个搜索过滤器。希望你能给我一些线索,让我知道我做错了什么!谢谢
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
export interface InformesCounter {
data: any;
meta: any;
count: any;
attributes: any;
links: any;
next: any;
href: any;
titulo: any;
}
@Injectable({
providedIn: 'root'
})
export class BuscadorService {
pageNumber: any = 0;
titulo: any = '';
informesNodes =`http://miurl.com/jsonapi/views/busqueda_avanzada/informes?page=${this.pageNumber}&views-filter[titulo]=${this.titulo}`;
constructor(private http: HttpClient) { }
getNodes(): Observable<InformesCounter> {
this.pageNumber = 1;
return this.http.get<InformesCounter>(`${this.informesNodes}`);
}
getFiltered(titulo: any): Observable<InformesCounter> {
this.titulo = titulo;
this.pageNumber = 1;
return this.http.get<InformesCounter>(`${this.informesNodes}`);
}
getPage(): Observable<InformesCounter> {
this.pageNumber = this.pageNumber + 1;
return this.http.get<InformesCounter>(`${this.informesNodes}`);
}
ungetPage(): Observable<InformesCounter> {
this.pageNumber = this.pageNumber - 1;
return this.http.get<InformesCounter>(`${this.informesNodes}`);
}
}
您的 informesNodes
模板字符串仅在创建 class 实例时评估一次。它不会自动更新新信息。
一个简单的解决方案是用 getter 替换它,其余代码可以保留 as-is:
get informesNodes() {
return `http://miurl.com/jsonapi/views/busqueda_avanzada/informes?page=${this.pageNumber}&views-filter[titulo]=${this.titulo}`;
}
当我调用下面的函数之一时,我需要更改 pageNumber 和 titulo 的参数值...但是当我调用这些函数时,这些参数保持不变,示例
http://miurl.com/jsonapi/views/busqueda_avanzada/informes?page=${this.pageNumber}&views-filter[titulo]=${this.titulo}
; //pageNumber returns 0 这是初始值,但是当我调用 getPage() 函数时仍然是 returns 0,每次调用它应该 return 1 然后 2。
这个想法是用 Angular 创建一个搜索过滤器。希望你能给我一些线索,让我知道我做错了什么!谢谢
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
export interface InformesCounter {
data: any;
meta: any;
count: any;
attributes: any;
links: any;
next: any;
href: any;
titulo: any;
}
@Injectable({
providedIn: 'root'
})
export class BuscadorService {
pageNumber: any = 0;
titulo: any = '';
informesNodes =`http://miurl.com/jsonapi/views/busqueda_avanzada/informes?page=${this.pageNumber}&views-filter[titulo]=${this.titulo}`;
constructor(private http: HttpClient) { }
getNodes(): Observable<InformesCounter> {
this.pageNumber = 1;
return this.http.get<InformesCounter>(`${this.informesNodes}`);
}
getFiltered(titulo: any): Observable<InformesCounter> {
this.titulo = titulo;
this.pageNumber = 1;
return this.http.get<InformesCounter>(`${this.informesNodes}`);
}
getPage(): Observable<InformesCounter> {
this.pageNumber = this.pageNumber + 1;
return this.http.get<InformesCounter>(`${this.informesNodes}`);
}
ungetPage(): Observable<InformesCounter> {
this.pageNumber = this.pageNumber - 1;
return this.http.get<InformesCounter>(`${this.informesNodes}`);
}
}
您的 informesNodes
模板字符串仅在创建 class 实例时评估一次。它不会自动更新新信息。
一个简单的解决方案是用 getter 替换它,其余代码可以保留 as-is:
get informesNodes() {
return `http://miurl.com/jsonapi/views/busqueda_avanzada/informes?page=${this.pageNumber}&views-filter[titulo]=${this.titulo}`;
}