@Input не получает данные от родительского компонента
Я только начал работать с @Input
особенность Angular и все было хорошо до сих пор. Я использую Firebase в качестве базы данных, и порция данных, в которую я звоню, выглядит следующим образом
{
"page_area_business_image" : {
"expand" : {
"intro" : "some info...",
"title" : "a title"
},
"rebrand" : {....},
"newbrand" : {....},
"questions" : {
"question01" : {
"id" : "an ID",
"name" : "a name",
"question" : "a question",
"answers" : {
"answer01" : {
"answer" : "some answer",
"id" : "an ID"
},
"answer02" : {
"answer" : "another answer",
"id" : "an ID"
}
}
},
"question02" : {....},
"question03" : {....}
}
}
}
Единственная проблема, с которой я сейчас сталкиваюсь, - это заставить дочерний компонент читать questions
данные, которые console.log()
Отлично подходит для родительского компонента, что означает, что файл службы доставляет его. Вот как я это называю.
Родительский компонент
private busExpInformation: FirebaseObjectObservable<any>;
private busImageO: FirebaseObjectObservable<any>;
private busImageQuesO: FirebaseObjectObservable<any>;
constructor(private _homeService: HomeService) { }
ngOnInit() {
this._homeService.getBusExpInformation().subscribe(BusExpInformation =>{
this.busExpInformation = BusExpInformation;
});
this._homeService.getBusImage().subscribe(BusImage => {
this.busImageO = BusImage.expand;
this.busImageQuesO = BusImage.questions;
console.log(this.busImageQuesO); //works fine here
});
}
Родительский шаблон
<business-image [busImageI]="busImageO" [busImageQuesI]="busImageQuesO"></business-image>
Дочерний компонент
@Input('busImageI')
busImage: FirebaseObjectObservable<any>;
@Input('busImageQuesI')
questions: FirebaseObjectObservable<any>;
ngOnInit() {
console.log(this.questions);// doesn't return anything
}
Я даже вернулся в родительский компонент и сделал вызов для него в его собственном вызове базы данных, как это
this._homeService.getBusImage().subscribe(BusImage => {
this.busImageQuesO = BusImage.questions;
console.log(this.busImageQuesO);
});
и это все еще не имеет значения в дочернем компоненте. Другой виден хорошо, как и все остальные через другие элементы, над которыми я работал.
Я видел в некоторых статьях и учебных пособиях, с которыми сталкивался, что они подчеркивают импорт и объявление дочернего компонента в родительском компоненте, но я видел другие, где они просто работают с ним, будучи объявленными в главном модуле родительском компоненте. Компонент связан с, как я его настроил. Я не знаю, имеет ли это значение или нет. Я видел другие примеры импорта нескольких @Input
и я не вижу, что я делаю по-другому.