【发布时间】:2020-05-30 00:19:35
【问题描述】:
所以我正在处理现有的代码库,我正在尝试制作 mat-form 文件以获取写入 mam-chart.model.ts 文件的 TextData,但由于某种原因我收到此错误“错误类型错误:无法读取未定义“”的属性“文本”。我
任何建议或帮助将不胜感激
design.ts
import { Chart, TextData, ChartData} from 'src/app/mam-chart/models';
export class ChartDesignComponent implements OnInit {
chart: Chart;
chartData: ChartData;
}
设计.html
<mat-form-field appearance="fill">
<mat-label>Text</mat-label>
<input matInput [(ngModel)]="chartData.textData.text" />
</mat-form-field >
<mat-form-field appearance="fill">
<mat-label>Color(# + hex color code)</mat-label>
<input matInput [(ngModel)]="chartData.textData.color"/>
</mat-form-field >
mam-chart.model.ts
export class Chart {
id: number;
chartType: ChartType = ChartType.chart;
version: number = 2;
dataType: ChartDataType = ChartDataType.static;
template: ChartTemplate;
.........
}
export class TextCard extends Chart {
public chartData: CardDataChart;
constructor(json?: any) {
super(json)
if (json == null) {
return;
}
this.chartData = new ChartData(json.chartData);
}
}
export class TextData {
public text: string;
public color: string;
public size: string;
public sizePx: number;
constructor(json?: any) {
if (json == null) {
this.text = "";
this.color = "";
this.size = "";
this.sizePx = 20;
return;
}
......
export class ChartData {
filteredData: FilteredData[];
figures: Figure[];
textData: TextData;
}
【问题讨论】:
-
您在哪里实例化组件中的 Chart 和 ChartData?只有这些类型的属性定义
-
你需要写
this.chart = new Chart()和this.chartData = new ChartData(json);在您的ChartDesignComponent内。在构造函数内部或 ngOnInit.或者您只需要在模板中使用chartData.textData.color。我们需要看到更多的ChartDesignComponent来帮忙 -
@AlanGrosz 您好,我不确定您的意思,但我添加了一些代码,请您再检查一下。谢谢
标签: html angular typescript angular-material