Как получить входной параметр в дочернем компоненте Angular? - PullRequest
0 голосов
/ 31 августа 2018

В родительском компоненте у меня есть:

<app-access-password [profileId]="getProfileId(kid.getId())"></app-access-password>

Где getProfileId(kid.getId() возвращает число, если ребенок. Я могу видеть это значение в шаблоне:

{{getProfileId(kid.getId())}} не пусто.

Когда я пытаюсь получить значение profileId внутри компонента app-access-password:

@Input() profileId: number;
constructor() {
   console.log(this.profileId)
}

Я получил неопределенное сообщение. Почему?

Ответы [ 5 ]

0 голосов
/ 31 августа 2018

Даже если ответ принят, я бы хотел отличаться. Вы можете получить к нему доступ в ngOnChanges(). ngOnChanges вызывается еще до ngOnInint().

ngOnChanges(changes : SimpleChanges){
 //changes.profileId will store both the previous and the current value . 
}

, поэтому, как только @Input() вступает в силу (значение изменяется с null на определенное значение), автоматически вызывается ngOnChanges, поэтому вам не нужно ждать компонента ngOnInit

0 голосов
/ 31 августа 2018
@Input() profileId: number;
ngOnInit() {

}
console.log(this.profileId)

Вы можете получить доступ к классу в любом месте

0 голосов
/ 31 августа 2018

Вам нужно будет загрузить после ngOnInit()

@Input() profileId: number;
ngOnInit() {
   console.log(this.profileId)
}
ngOnChanges(){
// you can access value everytime `this.profileId` value changes
}
0 голосов
/ 31 августа 2018

Конструкция угловых спасательных крюков гласит, что все входные значения доступны после constructor. Вы можете получить к нему доступ init.

@Input() profileId: number;
ngOnInit() {
    console.log(this.profileId);
}
0 голосов
/ 31 августа 2018

вам нужно получить доступ после загрузки представления, переместите его в метод ngOnInit ()

@Input() profileId: number;
ngOnInit() {
   console.log(this.profileId)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...