【发布时间】:2022-01-04 20:20:30
【问题描述】:
您好,我正在开发一个网络应用程序,我在其中显示以 json 格式接收的学生数据。
这是打字稿代码sn-p
export interface studentData{
ID : number;
Name :string;
Class : string;
Languages: string;
}
const STUDENT_DATA: studentData[] =
[
{
ID : 1
Name: "Amy",
Class: "Grade1",
Languages: "Java, .net, Python"
},
{
ID : 2
Name: "John",
Class: "Grade2",
Languages: "Kotlin, Java, Typescript"
},
{
ID: 3
Name: "Shawn",
Class: "Grade3",
Languages: "Javascript, C++, Perl"
},
]
export class StudentDataComponent{
languages : string[] = [];
for (let i=0; i <= STUDENT_DATA.length - 1 ; i++)
{
this.languages = STUDENT_DATA[i].Languages.split(",");
}
}
我尝试将 Languages 设为单独的数组,并考虑在使用 ngFor 在屏幕上显示时使用它
languages : string[] = [];
for (let i=0; i <= STUDENT_DATA.length - 1 ; i++)
{
this.languages = STUDENT_DATA[i].Languages.split(",");
}
我尝试在 mat-chip-list 中显示如下所示,但它只显示所有 ID 的 ID 3 语言
<mat-chip-list>
<mat-chip *ngFor = "let lang of languages>
{{lang}}
</mat-chip>
</mat-chip-list>
需要帮助来读取语言 json 值并在屏幕上显示。
【问题讨论】:
-
您的实际代码是否错过了 ngFor 中的结尾引号?此外,看起来
this.languages最终会成为最后一个学生的语言。 -
为什么要遍历学生数据并为每个数据重新创建范围变量
this.languages?您的意思是为每个学生创建一个单独的数组吗?
标签: javascript angular typescript mat-table mat-chip