我对组件视图渲染有一个奇怪的问题。 我正在处理的部分组件如下所示:
<div [ngSwitch]="step">
<comp1 *ngSwitchCase="'step1'"></comp1>
<comp2 *ngSwitchCase="'step2'"></comp2>
</div>
Comp2使用如下共享组件:
<ul>
<li *ngFor="let p of products">
{{p}}
<change-quantity [quantity]="p.quantity"
(quantityChanged)="onChangeQuantity(p,$event)">
</change-quantity>
</li>
</ul>
我遇到的问题是,如果我使用<change-quantity>
初始化父组件,step = 'step2'
不会渲染模型更改,但是如果我从step='step1'
开始然后转到{{1 }}效果很好。
更改数量看起来像这样:
step='step2'
我发现在更改产品数量模型时可以使用onChangeQuantity(product, ev) {
product.quantity = ev;
}
的解决方法,但是我认为这不是正确的方法。我会很高兴找到比手动触发ngZone
更好的方法。
UPD:我试图
ngZone
代替*ngSwitch
-没有成功*ngIf