Angular 5 - 具有不同值的输入视图
Angular 5 - Input view with different value
我有一个使用 ngx-bootstrap 的预输入输入。
<input type="text" class="form-control with-icon" placeholder="Address ..."
formControlName="address" [typeahead]="addressDataSource" typeaheadOptionField="fullAddress" />
我的 addressDataSource 看起来像这样:
[
{
id: '1',
fullAddress: '44000 - Nantes'
},
{
id: '2',
fullAddress: '77400 - Paris'
}
....
]
问题是当我 select 一个值时,我想在输入中显示 fullAddress 中的 selected 值,这很好用,但输入的值应该只是邮政示例中的代码为 44000 或 77400。
我试图制定这样的指令:
constructor(private model: NgControl) { }
@HostListener('input') inputChange() {
const newValue = this.model.value.split(' ')[0];
this.model.control.setValue(newValue);
this.model.valueAccessor.writeValue(this.model.value);
}
值发生变化,输入中显示的值也发生变化。
好的,我设法让它工作了,以防它对某人有所帮助,这是指令代码:
constructor(private model: NgControl) { }
@HostListener('input') inputChange() {
const newValue = this.model.value.split(' ')[0];
this.model.control.setValue(newValue, {
emitEvent: false,
emitModelToViewChange: false
});
}
我之前没想到为什么它不能与代码一起使用,如果有人有答案我会更新我的答案。
我有一个使用 ngx-bootstrap 的预输入输入。
<input type="text" class="form-control with-icon" placeholder="Address ..."
formControlName="address" [typeahead]="addressDataSource" typeaheadOptionField="fullAddress" />
我的 addressDataSource 看起来像这样:
[
{
id: '1',
fullAddress: '44000 - Nantes'
},
{
id: '2',
fullAddress: '77400 - Paris'
}
....
]
问题是当我 select 一个值时,我想在输入中显示 fullAddress 中的 selected 值,这很好用,但输入的值应该只是邮政示例中的代码为 44000 或 77400。
我试图制定这样的指令:
constructor(private model: NgControl) { }
@HostListener('input') inputChange() {
const newValue = this.model.value.split(' ')[0];
this.model.control.setValue(newValue);
this.model.valueAccessor.writeValue(this.model.value);
}
值发生变化,输入中显示的值也发生变化。
好的,我设法让它工作了,以防它对某人有所帮助,这是指令代码:
constructor(private model: NgControl) { }
@HostListener('input') inputChange() {
const newValue = this.model.value.split(' ')[0];
this.model.control.setValue(newValue, {
emitEvent: false,
emitModelToViewChange: false
});
}
我之前没想到为什么它不能与代码一起使用,如果有人有答案我会更新我的答案。