目的:私はクイズのコンポーネントを持っていて、テンプレートで一度に1つの質問を表示できるようにしたい。次のボタンをクリックすると、次の質問が表示されます。Observable <any[]>の値を次のクリックまでAngularテンプレートに表示する方法
問題:FirebaseListObservableに質問リスト全体が含まれています。テンプレートに一度に1つだけレンダリングするにはどうすればいいですか?私は今までのコードの下に貼り付けました。リスト全体をレンダリングします。初心者レベルのRxJS知識のおかげで、ここからどこに行くのか分かりません。
import { Component, OnInit } from '@angular/core';
import { FirebaseService } from '../../firebase.service';
import { Observable } from 'rxjs/Observable';
import { Question } from '../../model/question';
@Component({
selector: 'app-quiz',
template: `
<md-grid-list cols="1" rowHeight="2:1">
<md-grid-tile>
<md-card *ngFor="let question of questions$ | async">
<md-card-header>
<md-card-title>{{question?.course}}</md-card-title>
<md-card-subtitle>{{question?.chapter}}</md-card-subtitle>
</md-card-header>
<md-card-content>
<p>{{question?.question}}</p>
</md-card-content>
<md-card-actions>
<button md-button>See Answer</button>
<button (click)="nextQuestion(question)" md-button>Next
Question</button>
</md-card-actions>
</md-card>
</md-grid-tile>
</md-grid-list>
`,
styles: [`.example-card { width: 400px;}`]
})
export class QuizComponent implements OnInit {
questions$: Observable<Question[]>;
constructor(private fbDatabase: FirebaseService) { }
ngOnInit() {
this.questions$ = this.fbDatabase.getFirebaseList('/questions');
}
nextQuestion() {
}
}
はちょうど私の答えを更新しました) 。その場合は私に教えてください – sugarme