对值应用函数时,双向数据绑定不起作用
Two-Way Data Binding not working when applying function on value
我正在尝试为我的输入字段实现双向数据绑定。
如果我直接使用该值,它会按预期工作。通过工作我的意思是当 typing/changing 输入字段值时值立即更改。
但是,我想 "replace" 地图中的值与其对应的值。
<mat-form-field class="steuersatz">
<input matInput placeholder="EU Taxcode" type="text" formControlName="euTaxCode" [matTooltip]="'EU Taxcode'" [matTooltipPosition]="'above'"/>
<button mat-button matSuffix mat-icon-button (click)="edit('euTaxCode', $event)">
<mat-icon>edit</mat-icon>
</button>
</mat-form-field>
<div class="taxcodeName">
<p>{{taxcodeName}}</p>
</div>
作品:
// taxcode, taxcodeName
taxcodes = new Map();
this.taxForm.get('euTaxCode').valueChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(data => {
// data = euTaxCode
this.taxcodeName = data;
});
无效:
// taxcode, taxcodeName
taxcodes = new Map();
this.taxForm.get('euTaxCode').valueChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(data => {
// data = euTaxCode
this.taxcodeName = taxcodesList.get(data);
});
解决方案是使用 parseInt()
将数据从字符串转换为数字。因此,这既不是一般数据绑定的问题,也不是 get 函数的问题。
我正在尝试为我的输入字段实现双向数据绑定。
如果我直接使用该值,它会按预期工作。通过工作我的意思是当 typing/changing 输入字段值时值立即更改。
但是,我想 "replace" 地图中的值与其对应的值。
<mat-form-field class="steuersatz">
<input matInput placeholder="EU Taxcode" type="text" formControlName="euTaxCode" [matTooltip]="'EU Taxcode'" [matTooltipPosition]="'above'"/>
<button mat-button matSuffix mat-icon-button (click)="edit('euTaxCode', $event)">
<mat-icon>edit</mat-icon>
</button>
</mat-form-field>
<div class="taxcodeName">
<p>{{taxcodeName}}</p>
</div>
作品:
// taxcode, taxcodeName
taxcodes = new Map();
this.taxForm.get('euTaxCode').valueChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(data => {
// data = euTaxCode
this.taxcodeName = data;
});
无效:
// taxcode, taxcodeName
taxcodes = new Map();
this.taxForm.get('euTaxCode').valueChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(data => {
// data = euTaxCode
this.taxcodeName = taxcodesList.get(data);
});
解决方案是使用 parseInt()
将数据从字符串转换为数字。因此,这既不是一般数据绑定的问题,也不是 get 函数的问题。