angular - 如何在 PrimeNg 中获取没有掩码字符的值?
问题描述
我正在为我们的 Angular 项目使用 primeNG UI 库。我使用primeng掩码来格式化值。
<p-inputMask type="text" name="IBANAccount"
#IBANAccount="ngModel"
mask="aa99 9999 9999 9999"
(onBlur)="OnIBANAccountChange()"
[ngModel]="CurrentPaymentOutRequest?.IBANAccount" (ngModelChange)="CurrentPaymentOutRequest.IBANAccount=UnMask($event)">
</p-inputMask>
在我的 Unmask 方法中,我删除了掩码值。
UnMask(val) {
return val.replace(/\s/g, '');
}
我有几个问题。
为什么要屏蔽,绑定屏蔽字符(例如:/,-,等)?
有没有其他方法可以在全球范围内处理这个问题?因为将来如果格式改变我应该在所有地方都改变它
解决方案
将unmask
属性(false
默认情况下)设置true
为获取原始值。
例子:
<p-inputMask mask="aa99 9999 9999 9999" unmask="true"></p-inputMask>
要全局设置它,您可以使用选择器创建一个指令(不要忘记在模块中声明它)p-inputMask
,例如:
import {Directive, Host} from '@angular/core';
import {InputMask} from 'primeng/primeng';
@Directive({
selector: 'p-inputMask'
})
export class InputMaskDefaultDirective {
constructor(@Host() private inputMask: InputMask) {
this.inputMask.unmask = true;
}
}
推荐阅读
- hyperledger-fabric - 向现有 Hyperledger 网络添加第二个组织时出现问题
- python - 刷新 JWT 令牌时不允许使用 405 方法 - Django、Angular
- c# - 尝试在 .NET Core 3.0 中播种角色时,获取任务被取消错误
- repository - NestJS y TypeORM:InjectRepository 未定义
- spring - 当一个方法被 AOP 代理包装时,RequestContextHolder.currentRequestAttributes() 会丢失它的头部
- c# - 当 Designer.Text (xaml) 修改 xaml 时,重新托管的 WF4.0 设计器不会从画布更新活动
- python - 创建一个不会替换子字符串的正则表达式
- javascript - 如何从 Reactjs 中的子组件获取多个值?
- javascript - 无法在 Javascript 中对数组进行排序
- mysql - sql 的 rowversioning 是否也可以防止不可重复/幻读?