Я работаю над проектом, который извлекает данные из Firebase и отображает все это внутри div в цикле ngFor. Когда вы нажимаете на div, он открывает модальный, который отображает данные в div. Все работает, за исключением тех случаев, когда я нажимаю, чтобы открыть модальный, он отображает данные только для первого div независимо от того, на какой div я нажимаю. Я надеюсь, что я пропускаю что-то простое, чтобы передавать правильные данные каждый раз, когда нажимается div.Связывание данных в Angular2 for loop
<div *ngFor="let game of games | async; trackBy:trackByGame" (click)="modal.open()">
<gamemodal [game]="game"></gamemodal>
</div>
компонент
export class gameModalComponent {
@Input() game: FirebaseListObservable<any>;
constructor() { }
@ViewChild(ModalComponent) modal: ModalComponent;
open() {
this.modal.open();
}
close() {
this.modal.close();
}
}
Вот где игры загружаются из Firebase
export class AppComponent {
@ViewChild(gameModalComponent)
modal: gameModalComponent;
games: FirebaseListObservable<any>;
cwstring = '/Games/5';
trackByGame(game: any){
return game != null ? game.gameid: null;
}
constructor(af: AngularFire) {
this.games = af.database.list(this.cwstring, {
query: {
orderByChild: 'status'
}
})
}
Любые идеи? Заранее спасибо.
Просьба показать код controller.ts –
@AlexanderCiesielski 'класс экспорта gameModalComponent { @Input(): FirebaseListObservable; constructor() {} @ViewChild (ModalComponent) modal: ModalComponent; open() { Это.modal.open(); } близко() { этот.modal.Закрыть(); } } ' –
dustin486
Измените свой ответ с помощью кода. Также добавьте часть, в которой вы назначаете переменную 'games' с фактическими данными из Firebase. –