在Angular中,订阅不保存数据到数组中的解决方法有以下几种:
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-example',
template: `
- {{ item }}
`
})
export class ExampleComponent {
data: any[] = [];
constructor(private http: HttpClient) {
this.http.get('https://api.example.com/data')
.pipe(map(response => response.data))
.subscribe(result => {
this.data = result;
});
}
}
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { tap } from 'rxjs/operators';
@Component({
selector: 'app-example',
template: `
- {{ item }}
`
})
export class ExampleComponent {
data: any[] = [];
constructor(private http: HttpClient) {
this.http.get('https://api.example.com/data')
.pipe(
tap(result => {
this.data = result;
})
)
.subscribe();
}
}
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { BehaviorSubject } from 'rxjs';
@Component({
selector: 'app-example',
template: `
- {{ item }}
`
})
export class ExampleComponent {
data$: BehaviorSubject = new BehaviorSubject([]);
constructor(private http: HttpClient) {
this.http.get('https://api.example.com/data')
.subscribe(result => {
this.data$.next(result);
});
}
}
在这个例子中,我们使用了BehaviorSubject来保存数据,并使用async管道在模板中订阅数据的变化。这种方法可以在组件中的任何地方订阅数据的变化,并保持同步。
上一篇:Angular订阅变量不显示