angular - p-inputMask ng-model 未清除无效值
问题描述
我正在使用inputMask
PrimeNG 的字段
<p-inputMask name="maskValue" [(ngModel)]="attr.attributeValue" mask="aa/99" placeholder="aa/99"></p-inputMask>
{{attr.attributeValue}}
但是,如果我输入a
文本框并聚焦,则该文本框正在清除,但 ng-modelattr.attributeValue
仍然保留 value a_/__
。我们怎样才能清除 ng-model 呢?
解决方案
通过查看inputMask 的来源,您可以看到有一个名为 的布尔属性filled
。
因此,我们可以访问该属性的值以了解输入是否已填充,ViewChild
并通过使用onBlur
事件,如果未填充,您可以在其中重新初始化模型。
HTML
<p-inputMask #myInputMask name="maskValue" [(ngModel)]="attr.attributeValue" mask="aa/99" placeholder="aa/99" (onBlur)="isInputMaskFilled($event)"></p-inputMask>
TS
@ViewChild('myInputMask') myInputMask: InputMask;
isInputMaskFilled(event) {
if(!this.myInputMask.filled) {
this.attr = { attributeValue: '' };
}
}
推荐阅读
- r - 了解 R 中树(data.tree)的递归构建
- ios - Xcode 10 阿拉伯语(RTL)故事板未加载
- migration - 从不同来源和架构到 MS SQL 服务器的数据迁移
- python - 创建 Python XML 到 JSON 转换器?
- entity-framework - 使用列表过滤的 linq 查询
(健康)状况 - javascript - 如何计算 div 元素的旋转角度?
- c++ - 将 Lua 函数块转换为 C 字符串
- c++ - 当我的软件使用 AddressSanitizer 编译时,如何随时输出分配的内存缓冲区列表?
- ios - user_first_touch_timestamp 与 first_open_time 有何不同?
- c# - 如何在 C# 中呈现同一场景的第二个屏幕