Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ngx translate-Angular 2在select FormControl上设置值_Angular_Typescript_Ngx Translate - Fatal编程技术网

使用ngx translate-Angular 2在select FormControl上设置值

使用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

我在一个被动表单中有一个selectformcontrol,我正在使用上的ngx translate库中的pipe translate。在我创建FormGroup的过程中初始化FormControl时,该值在DOM中反映得很好,您实际上可以看到转换。但是,当我尝试在FormControl上重置、设置值或patchValue时,管道转换似乎一点也不喜欢它。我可以在重置FormControl后将其值记录到console.log中,并实际看到值的变化。它只是没有反映DOM中的这种变化。我还尝试在FormControl中添加一个(ngModelChange)来观察重置后的值的变化,这也起作用,但不会在DOM中反映出来。我期望的结果是使用重置,因为我可以在一次过程中设置控件的值并重置控件的状态。这是我见过的最奇怪的行为,我无法理解。如果我移除管道平移,值的重置工作非常好,并反映DOM中的值。任何帮助都将不胜感激!以下是代码:

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}
现在一切正常