javascript - 如何使用 ngModel Angular 在输入文本中使用管道

标签 javascript angular typescript input-mask

我有下拉组件(信用卡列表),它在 input 上绑定(bind)下拉值,使用 ngModel 我设法在输入上绑定(bind)下拉值,然后我需要显示输入字段中的信用卡号看起来像项目符号特殊字符:

4444 •••• •••• 4444

通过使用 pipe,我设法将其绑定(bind)到下拉组件上,但由于 ngModel,将其绑定(bind)到 input 时出现问题,这是我试过的:

ma​​sk.pipe.ts

transform(value: string, showMask :boolean): string {

    if (typeof value === "number") {
        value = JSON.stringify(value);
    }

    if (!showMask || value.length < 16) {
        return value;
    }

    return `${value.substr(0, 4)} ${'&#x25cf;'.repeat(4)} ${'&#x25cf;'.repeat(4)} ${value.substr(value.length - 4, value.length)}`;
}

html组件

  <input placeholder="value"
    [ngModel]="selectedCard.value | maskInput: true"
    (ngModelChange)="selectedCard.value = $event"type="text">

输出是:

1111 &#x25cf;&#x25cf;&#x25cf;&#x25cf; &#x25cf;&#x25cf;&#x25cf;&#x25cf; 1111

这是我的 stackblitz demo ,有没有关于如何解决这个问题或更好的做法的建议?

最佳答案

你的方法看起来很完美,

只需将 替换为

像这样:

 return `${value.substr(0, 4)} ${'●'.repeat(4)} ${'●'.repeat(4)} ${value.substr(value.length - 4, value.length)}`;

Working Demo

关于javascript - 如何使用 ngModel Angular 在输入文本中使用管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58093590/

相关文章:

javascript - 如何在 JavaScript 中创建对象数组?

javascript 语法在 firefox , IE 中不匹配

javascript - js错误: You may need an appropriate loader

Angular - 错误引用错误 : config is not defined

angular - 如果任何 p 列已有模板,则数据表行扩展不起作用

angular - 具有初始值的 Observable

javascript - 将 ng-repeat 过滤器迁移到 Typescript

php - 将数组存储到 Javascript 中

html - 显示滑动背景图像

angular - 如何为 Resolve 编写测试