我第一次尝试使用Angular-material,当我使用ngx-translate测试mat-select时,它没有更新语言,直到重新点击输入才会生效.
码:
<mat-form-field> <mat-select placeholder="City" [formControl]="city"> <mat-option *ngFor="let city of cityList" [value]="city.id"> {{city.name | translate}} </mat-option> </mat-select> </mat-form-field>
解决方法
是不是因为Angular如何处理模板表达式?
Angular在每个更改检测周期后执行表达式.更改检测周期由许多异步活动触发,例如promise解析,http结果,计时器,按键和鼠标移动事件.
这就是为什么单击会触发执行translate Pipe的表达式的原因