angular2 * ngfor和嵌套的可观察对象

前端之家收集整理的这篇文章主要介绍了angular2 * ngfor和嵌套的可观察对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嵌套的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>

猜你在找的Angularjs相关文章