У меня есть модал, состоящий из формы, которая связана с экземпляром "Foo". Во время построения модальной, foo установлен правильно. Я дважды проверил оба, используя точки останова и console.log
. Однако в любое время после конструктора this.foo
равно undefined
.
-
РЕДАКТИРОВАТЬ: я нашел решение, но мой вопрос остается в силе. Мое решение состояло в том, чтобы переместить мое назначение foo
в ngOnInit()
вместо конструктора.
-
Шаблон:
<ion-header>
<ion-toolbar>
<ion-title>New Foo</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item>
<ion-input placeholder="Name" [(ngModel)]="foo.name"></ion-input>
</ion-item>
<!-- etc... -->
</ion-list>
<ion-button expand="block" color="primary" (click)="create()">
Create
</ion-button>
</ion-content>
Компонент:
export class FooModalComponent implements OnInit {
foo: Foo = new Foo();
constructor(
private modalController: ModalController,
private navParams: NavParams
) {
const inputFoo = this.navParams.get("foo");
if (inputFoo) {
// this shouldn't matter, as foo would have to be truthy (not undefined)
this.foo = inputFoo;
}
// logs this.foo as expected
console.log(this.foo);
}
ngOnInit() {
// logs: undefined
console.log(this.foo);
}
close() {
this.modalController.dismiss();
}
create() {
this.modalController.dismiss(this.foo);
}
}
Модель:
export class Foo {
name: string;
}