最佳答案
我是新来的。实际上,我正在尝试从一个服务订阅数据,而这个数据,我正在从(例如,它就像一个编辑表单)传递给我的表单控件。
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormArray, FormControl } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { QuestionService } from '../shared/question.service';
@Component({
selector: 'app-update-que',
templateUrl: './update-que.component.html',
styleUrls: ['./update-que.component.scss']
})
export class UpdateQueComponent implements OnInit {
questionsTypes = ['Text Type', 'Multiple choice', 'Single Select'];
selectedQuestionType: string = "";
question: any = {};
constructor(private route: ActivatedRoute, private router: Router,
private qService: QuestionService, private fb: FormBuilder) {
}
ngOnInit() {
this.getQuebyid();
}
getQuebyid(){
this.route.params.subscribe(params => {
this.qService.editQue([params['id']]).subscribe(res =>{
this.question = res;
});
});
}
editqueForm = this.fb.group({
user: [''],
questioning: ['', Validators.required],
questionType: ['', Validators.required],
options: new FormArray([])
})
setValue(){
this.editqueForm.setValue({user: this.question.user, questioning: this.question.questioning})
}
}
如果我使用 [(ngModule)]
在我的表单字段设置的值,我的元素,它是工作良好,并显示一个警告,它将在角度7版本弃用。
<textarea formControlName="questioning" [(ngModule)]="question.questioning" cols="70" rows="4"></textarea>
因此,我通过执行下面的操作来设置表单控件的值,但是元素没有显示这些值。
setValue(){
this.editqueForm.setValue({user: this.question.user, questioning: this.question.questioning})
}
有人能告诉我如何设置反应形式的值吗?