【发布时间】:2021-04-14 11:43:02
【问题描述】:
下午好, 我正在尝试在材料表中呈现 api 数据,但在将 NasaApiService 连接到 dataSource 数组时遇到问题。 截至目前,我收到“类型'MatTableDataSource'不可分配给类型'[]'。错误。非常感谢任何帮助。
/*Nasa Service*/
import { Injectable } from '@angular/core';
import {HttpClient } from '@angular/common/http';
import {Observable} from 'rxjs';
import {map} from 'rxjs/operators';
export interface NasaStation {
name: string;
nametype: string;
id: string;
year: string;
recclass: string;
items: any;
}
@Injectable()
export class NasaApiService {
parsed: any;
constructor(private _http: HttpClient) {
}
getNasaData(): Observable<NasaStation> {
return this._http.get<NasaStation>('https://data.nasa.gov/resource/gh4g-9sfh.json');
}
}
/*nasa.component.*/
import { Component, OnInit } from '@angular/core';
import { NasaApiService} from '../nasa-api.service';
import {HttpClient} from '@angular/common/http';
import { MatTable,MatTableDataSource } from '@angular/material/table';
const api = 'https://data.nasa.gov/resource/gh4g-9sfh.json';
@Component({
selector: 'app-nasa',
templateUrl: './nasa.component.html',
styleUrls: ['./nasa.component.css']
})
export class NasaComponent implements OnInit {
data;
dataSource: [];
displayedColumns: string[] = ['Name', 'Name-type', 'ID', 'Year', 'Recclass'];
constructor(private _nasa: NasaApiService) {
}
ngOnInit(){
this._nasa.getNasaData().subscribe(data => {
this.dataSource = new MatTableDataSource(this.data);
this.data = data;
console.log(data);
})
}
}
【问题讨论】:
标签: html angular typescript api angular-material