Я нашел проект angular на github, и я пытался продолжить работу над ним, чтобы научиться, но я застрял в том, как правильно использовать ngIf.
, поэтому у меня есть три типа диаграммы внутри файла chart.model.ts, и я не уверен, кому получить доступ к этим данным в моем файле design.component.ts, чтобы я мог отображать только текстовое поле когда пользователь выбирает текст в раскрывающемся списке.
прямо сейчас, три варианта типа диаграммы отображаются в раскрывающемся списке, когда я запускаю проект, но ничего не делаю, а также я получил ошибку в моем ngIf, говоря что
«Свойство 'text' не существует для типа 'ChartType'.»
Я был бы очень признателен, если бы кто-нибудь научил меня или помог мне.
chart.model.ts
export class ChartUtil {
public static getChartTypeDisplay(type: ChartType): string {
switch (type) {
case ChartType.chart:
return "Charts";
case ChartType.text:
return "Text";
case ChartType.grid:
return "Grid";
default:
return "unknown";
}
}
export enum ChartType {
chart = 1,
text,
grid
}
}
design.component.ts
import { ChartType } from 'src/app/chart.model';
chartTypes: ChartType;
setupTypes() {
keys = Object.keys(ChartDataType);
for (let i = 0; i < (keys.length / 2); i++) {
this.dataTypes.push({ value: parseInt(keys[i]), display: ChartUtil.getChartDataTypeDisplay(parseInt(keys[i])) })
}
}
design.component. html
<ng-container *ngIf="chart.chartTypes == chartTypes.text">
<mat-form-field appearance="fill">
<mat-label>Text</mat-label>
<input matInput />
</mat-form-field>
Я не могу загрузить полный проект на stackblitz, но я загрузил весь код из этого файла поверх https://stackblitz.com/edit/angular-ivy-dmf3vn