Grundsätzlich versuche ich eine gui für die einfachere Dateibearbeitung zu erstellen.Kann Eigenschaft 'Datum' von undefined nicht lesen
Ich habe ein Array wie folgt aus: (Die Tasten sind dynamisch, so dass die Anordnung nicht eine Vorlage nicht verwendet und ich kann beziehen sich auf seine Inhalte.)
Wenn ich Schleife bin versucht, durch es gibt mir eine Fehlermeldung:
Cannot read property 'date' of undefined
der Fehler in dieser Zeile in dem multiarray.component.html geschieht:
<ng-template [ngIf]="getType(configFile[key][sub]) === 'multiarray'">
<multiarray-component [key]="sub" [configFile]="configFile" [value]="configFile[key][sub]" [descriptions]=""></multiarray-component>
</ng-template>
Code: multiarray.component.html
<div class="col-md-12">
<h4>{{key}}</h4>
<div class="row">
<ng-template [ngIf]="getType(value) !== 'multiarray'">
<ng-template [ngIf]="getType(configFile[key]) === 'text' || getType(configFile[key]) === 'number'">
<input-component [key]="key" [value]="configFile[key]" [descriptions]=""></input-component>
</ng-template>
<ng-template [ngIf]="getType(configFile[key]) === 'boolean'">
<checkbox-component [key]="key" [value]="configFile[key]" [descriptions]=""></checkbox-component>
</ng-template>
<ng-template [ngIf]="getType(configFile[key]) === 'array'">
<array-component [key]="key" [value]="configFile[key]" [descriptions]=""></array-component>
</ng-template>
</ng-template>
<ng-template [ngIf]="getType(value) === 'multiarray'">
<div *ngFor="let sub of getKeys(value)">
<ng-template [ngIf]="getType(configFile[key][sub]) === 'multiarray'">
<multiarray-component [key]="sub" [configFile]="configFile" [value]="configFile[key][sub]" [descriptions]=""></multiarray-component>
</ng-template>
<ng-template [ngIf]="getType(configFile[key][sub]) === 'text' || getType(configFile[key][sub]) === 'number'">
<input-component [key]="sub" [value]="configFile[key][sub]" [descriptions]=""></input-component>
</ng-template>
<ng-template [ngIf]="getType(configFile[key][sub]) === 'boolean'">
<checkbox-component [key]="sub" [value]="configFile[key][sub]" [descriptions]=""></checkbox-component>
</ng-template>
<ng-template [ngIf]="getType(configFile[key][sub]) === 'array'">
<array-component [key]="sub" [value]="configFile[key][sub]" [descriptions]=""></array-component>
</ng-template>
</div>
</ng-template>
</div>
<span *ngFor="let description of descriptions">{{description}}</span>
</div>
multiarray.component.ts
import {Component, Input} from "@angular/core";
@Component({
selector: 'multiarray-component',
templateUrl: './multiarray.component.html',
styles: [`
span {
display: block;
font-size: 11px;
}
`],
})
export class MultiArrayComponent {
@Input() key: string;
@Input() value: object;
@Input() configFile: object;
@Input() descriptions: string[];
getType(obj): string {
let type = Object.prototype.toString.call(obj);
switch (type) {
case "[object String]": {
return "text";
}
case "[object Number]": {
return "number";
}
case "[object Boolean]": {
return "boolean";
}
case "[object Array]": {
return "array";
}
case "[object Null]": {
return "null";
}
case "[object Object]": {
return "multiarray";
}
default:
return "unknown";
}
}
getKeys(object: object): string[] {
return Object.keys(object);
}
}
Kann jemand erklären, was ich falsch mache? Vielen Dank.