【发布时间】:2018-02-12 05:48:36
【问题描述】:
目标:我有一个测验组件,我希望能够在我的模板中一次显示一个问题。用户可以在单击“下一步”按钮时显示下一个问题。
问题:我有一个 FirebaseListObservable,其中包含整个问题列表。如何一次只将一个渲染到我的模板。到目前为止,我粘贴了下面的代码。它呈现整个列表。我不知道从哪里开始,部分原因是我的 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() {
}
}
【问题讨论】:
-
刚刚更新了我的答案。让我知道这是否有效