Я не уверен, точен ли этот предмет, но лучше всего его описать.
Я работаю над приложением Ioni c 5 Angular с SQlite. Пытаюсь использовать классы / модели для размещения моих данных.
Например:
export class Person {
id: number;
name: string;
details: PersonDetails; // how can I init these properties from Person?
}
export class PersonDetails {
value: boolean;
enabled: boolean;
}
export class TestPage implements OnInit {
private person: Person[];
async ngOnInit() {
const result = await this.db.getPeople(); // pulled from SQlite Database
const people = plainToClass(Person, result); // plainToClass used here.
}
}
Вывод в консольный журнал становится ниже, что является правильным.
Array [
Person{id: 1, name: John Doe },
Person{id: 2, name: Jane Doe }]
Как я могу получить детали: PersonDetails, в массив результатов, чтобы он был включен в мою модель Person? У меня нет контроля над добавлением деталей в исходный объект json, поскольку, поскольку он подается из SQlite через мою базу данных.
В основном мне нужны детали для размещения изменений формы, люди зацикливаются в angular и изменяются на переключатели или формы взаимодействия должны храниться в PersonaDetails. Проблема в том, что Ануглар выдает неопределенную ошибку, так как подробности отсутствуют в json.
<ion-item *ngFor="let person of people">
<ion-label class="label-sml">{{ person.id }} - {{ person.name}}</ion-label>
<ion-toggle [(ngModel)]="person.details.enabled" color="steel-red"></ion-toggle>
<!-- This causes an issue since peson.details is not set -->
</ion-item>
Имеет ли это какой-то смысл? Может я об этом не так? Любая помощь будет оценена или даже пример, как это сделать. Я знаю, что могу добавить детали через ... obj, но не уверен, что это правильно, и, похоже, он не сопоставляется с моим классом PersonDetails Model.