angular - 获取数组Http Client有值但在Angular 9上未定义的组件中的值
问题描述
获取数组Http Client有值但在Angular 9上未定义的组件中的值
我的价值未定义
这是我的服务
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable, observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class RequestService {
constructor(private http: HttpClient) { }
private address = 'http://localhost:8080/request';
public getAll<T>(): Observable<T> {
return this.http.get<T>(this.address);
}
}
这是我的 components.ts 文件
import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';
import { RequestService } from './request.service';
@Component({
selector: 'app-table-request',
templateUrl: './table-request.component.html',
styleUrls: ['./table-request.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class TableRequestComponent implements OnInit {
dataList!: [];
constructor(private rs: RequestService) {
this.loadData();
console.log(this.dataList)//this is console.log
}
ngOnInit(): void {
}
loadData() {
this.rs.getAll().subscribe((res: any) => {
this.dataList = res;
});
}
}
这是来自 console.log https://i.stack.imgur.com/51YPh.png
解决方案
尝试这个:
export class TableRequestComponent implements OnInit {
dataList: [];
constructor(private rs: RequestService) {
}
ngOnInit(): void {
this.loadData();
}
loadData() {
this.rs.getAll().subscribe((res: any) => {
this.dataList = res;
console.log(this.dataList)//this is console.log
});
}
}
并将您的“dataList”绑定到您的显示器(如表格)。您可以阅读有关异步调用的更多信息,以了解为什么无法在“订阅”之外获取“datatList”值。
推荐阅读
- angular - 社交登录 Angular 4+ 和 Spring boot
- c# - 在 C# 中的 Evernote 身份验证后获取 UserId 和 ShardId
- vba - 有没有办法在不使用表格的情况下在 MS-Access 中创建表单?
- python - 使用分页将sql语句转换为flask_sqlalchemy
- javascript - 主路由器插座内的路由器插座不显示任何错误
- mongodb - Mongodb Group阶段,并查询最后两个文档
- python - Python Scrapy - 如何同时从 2 个不同的网站抓取?
- matlab - 查找列的最后一个真实元素
- ios - SwiftUI:弹出窗口不会关闭
- javascript - 在任何给定时间突出显示列表中的一项(默认为索引 0)