我在一个反应形式中有一个选择FormControl我正在使用来自ngx-translate库的管道翻译 . 在我创建FormGroup时初始化FormControl时,值在DOM中反映得很好,您实际上可以看到转换 . 但是,当我尝试在FormControl上重置,setValue或patchValue时,管道转换似乎根本不喜欢它 . 我可以在重置它之后调试Form.log的值,并实际看到值更改 . 它只是没有反映DOM中的这种变化 . 我还尝试在FormControl中添加一个(ngModelChange)来重置它后观察值的变化,这也有效,但是没有在DOM中反映出来 . 我想要的结果是使用reset,因为我可以设置控件的值并在一次通过中重置控件的状态 . 这是我见过的最奇怪的行为,我无法弄清楚这一点 . 如果我删除管道转换,则值的重置完全正常并反映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>
1 回答
万一有人遇到同样的问题 . 这一切都与选项标签上的value属性有关 . 我在DOM中更新了我的代码,如下所示:
它现在工作得很好 .