嵌套的observable有问题:
我设法得到了正确数量的计划,
顺便说一句,所有可靠的设置都很好,我可以在控制台中看到状态的数量正在增长……
但是组合框是空的我做错了什么?
这是我在模板中的代码片段:
<tr *ngFor="let plan of plans$| async"> <td><input type="text" [(ngModel)]="plan.libelle"/></td> <td> <select> <option *ngFor="let statut of statuts$| async" ngValue="{{statut.id}}" [selected]="statut.id == plan.statut.id"> {{statut.libelle}} </option> </select> </td> </tr>
我组件中的另一个:
private plans$:Observable<Array<Plan>>; private statuts$:Observable<Array<Param>>; constructor(private planService:PlanService,private paramService:ParamService) {} ngOnInit() { this.statuts$= this.paramService.typesPlan$; //return the observable from the service this.plans$= this.planService.plans$; //same thing this.paramService.loadAll('plan'); //this load all the status in an async way. this.planService.loadAll(); //the same as above and it work. }
我的结果是我的计划表,但在同一行,组合是空的:组合中没有选择(异步不工作?)
似乎状态$更新时模板未更新
谢谢你的帮助!
解决方法
我想这就是你想要的:
<option *ngFor="let statut of statuts$| async" [(ngValue)]="statut.id"> {{statut.libelle}} </option>
要么
<option *ngFor="let statut of statuts$| async" [ngValue]="plan.statut.id" (ngValueChange)="status.id = $event"> {{statut.libelle}} </option>