使用ngx translate-Angular 2在select FormControl上设置值
我在一个被动表单中有一个selectformcontrol,我正在使用上的ngx translate库中的pipe translate。在我创建FormGroup的过程中初始化FormControl时,该值在DOM中反映得很好,您实际上可以看到转换。但是,当我尝试在FormControl上重置、设置值或patchValue时,管道转换似乎一点也不喜欢它。我可以在重置FormControl后将其值记录到console.log中,并实际看到值的变化。它只是没有反映DOM中的这种变化。我还尝试在FormControl中添加一个(ngModelChange)来观察重置后的值的变化,这也起作用,但不会在DOM中反映出来。我期望的结果是使用重置,因为我可以在一次过程中设置控件的值并重置控件的状态。这是我见过的最奇怪的行为,我无法理解。如果我移除管道平移,值的重置工作非常好,并反映DOM中的值。任何帮助都将不胜感激!以下是代码:使用ngx translate-Angular 2在select FormControl上设置值,angular,typescript,ngx-translate,Angular,Typescript,Ngx Translate,我在一个被动表单中有一个selectformcontrol,我正在使用上的ngx translate库中的pipe translate。在我创建FormGroup的过程中初始化FormControl时,该值在DOM中反映得很好,您实际上可以看到转换。但是,当我尝试在FormControl上重置、设置值或patchValue时,管道转换似乎一点也不喜欢它。我可以在重置FormControl后将其值记录到console.log中,并实际看到值的变化。它只是没有反映DOM中的这种变化。我还尝试在For
this.shopInfoForm = this._formBuilder.group({
name: [this._settings.name],
brand: [this._settings.brands[0]],
language: [this._settings.language]
});
get language() { return this.shopInfoForm.get('language'); }
this.language.reset(this._settings.language);
<div class="input-group">
<span class="input-group-addon">Language</span>
<select formControlName="language" class="form-control">
<option *ngFor="let language of languages">{{language.langLabelId.toString() | translate}}</option>
</select>
</div>
this.shopInfoForm=this.\u formBuilder.group({
名称:[this.\u settings.name],
品牌:[this.\u settings.brands[0]],
语言:[this.\u settings.language]
});
get language(){返回this.shopInfoForm.get('language');}
this.language.reset(this.u settings.language);
语言
{{language.langLabelId.toString()| translate}}
以防有人遇到同样的问题。这一切都与option标记上的value属性有关。我在DOM中更新了代码,如下所示:
<option *ngFor="let language of languages" value="{{language.langLabelId}}">{{language.langLabelId.toString() | translate}}</option>
{{language.langLabelId.toString()| translate}
现在一切正常