我是angular的新手,我有以下情况,我有一个服务和两个相互关联的组件.
- online-quote
- dynamic-form
online-quote组件在其ngOnInit()
方法中调用服务getAnswers():Observable<AnswerBase<any>[]>
,其结果被传递给组件dynamic-form.
为了说明这种情况,这是我的两个组件的代码:
网上报价.组成部分html:
<div>
<app-dynamic-form [answers]="(answers$ | async)"></app-dynamic-form>
</div>
网上报价.组成部分ts:
@Component({
selector: 'app-online-quote',
templateUrl: './online-quote.component.html',
styleUrls: ['./online-quote.component.css'],
providers: [DynamicFormService]
})
export class OnlineQuoteComponent implements OnInit {
public answers$: Observable<any[]>;
constructor(private service: DynamicFormService) {
}
ngOnInit() {
this.answers$=this.service.getAnswers("CAR00PR");
}
}
动态形式.组成部分html:
<div *ngFor="let answer of answers">
<app-question *ngIf="actualPage===1" [answer]="answer"></app-question>
</div>
动态形式.组成部分ts:
@Component({
selector: 'app-dynamic-form',
templateUrl: './dynamic-form.component.html',
styleUrls: ['./dynamic-form.component.css'],
providers: [ AnswerControlService ]
})
export class DynamicFormComponent implements OnInit {
@Input() answers: AnswerBase<any>[];
constructor(private qcs: AnswerControlService, private service: DynamicFormService) { }
ngOnInit() {
this.form = this.qcs.toFormGroup(this.answers);
}
我的问题是,如果服务getAnswers():Observable<AnswerBase<any>[]>
的结果信息是可观察的,那么将信息从online-quote传递到dynamic-form的正确方式是什么.
我试过很多方法,但都不管用.我想找个人帮我.非常感谢你!