* ng不显示

时间:2018-04-30 11:03:02

标签: angular typescript firebase firebase-realtime-database angular-forms

嘿,我知道这个问题很多,但正常的修复方法不起作用。

这是我的代码

export class CourseReviewFormComponent implements OnInit { 
 form: FormGroup
 questionnaire: string[] = [];
 currentQuestionsValue: string[] = [];

 constructor(private serverData: ServerService) { }
  ngOnInit() {
    this.onGetForm();   
   }

 onGetForm() {
   this.serverData.getData('questionnaire/Student Course Review')
     .subscribe(
        (response: Response) => {
         this.questionnaire = response.json();
         let key = Object.keys(this.questionnaire);
         for (let i = 0; i < key.length; i++) {
           this.currentQuestionsValue.push(this.questionnaire[key[i]].items)
         }
         console.log('current Questions Value', this.currentQuestionsValue);
         },
          (error) => console.log('Form Error', error)
         )
      }
    }

我的模板

 <form>
  <div *ngFor="let data of currentQuestionsValue">
    <strong> {{ data.sno }}). </strong>
    <span>{{ data.question}}</span>
    <div>
      <label *ngFor="let op of data.options; let i = index">
        <input type="radio" name="option" [value]="i">
        <span>{{ op }}</span>
      </label>
    </div>
  </div>
</form>

但ngFor不显示任何数据:

console.log('current Value', this.currentValue);中效果很好。

但是,当我在DOM中运行ngFor循环时,它不起作用。 enter image description here

2 个答案:

答案 0 :(得分:1)

你需要得到一个数组的第一项并迭代它的值,这也是一个数组。

ServerService我会添加中间步骤来转换像这样的observable:

.map(data => data.json())
.map(json => json[0])

答案 1 :(得分:0)

你在找这个吗??

let data of currentQuestionsValue[0]