Angular:将自定义管道添加到addControl()元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular:将自定义管道添加到addControl()元素相关的知识,希望对你有一定的参考价值。

所以我创建了一个自定义管道,允许我从文本字段中删除空格。像这样:

@Pipe({ name: 'removeWhiteSpace' })
export class removeWhiteSpacePipe implements PipeTransform {
    transform(value: any) {
        if (!value) {
            return '';
        }

        return value.replace(/\s*/g, "");
    }
}

html文件中,如果我将其添加到值中就好了,如下所示:

<input type="text" value="{{ value | removeWhiteSpace }}" />

但是,由于项目的开发,我们现在使用.ts文件中的.addControl()添加字段的值,如下所示:

this.phoneNumber.addControl('publicPhoneNumber', new FormControl(null, [Validators.required, Validators.minLength(7), Validators.maxLength(11)]));

现在我们在html中没有value=""

如何使用自定义管道实现方式?

答案

使用它像:

<input type="text" formControlName="publicPhoneNumber" [value]="phoneNumber.get('publicPhoneNumber').value | removeWhiteSpace "/>

我可能不理解你的完整要求。但是你不想使用value输入属性然后在最大程度上你有一个监听器来更改表​​单控件并使用你的管道就像一个服务,如:

ngOnInit() {
  this.phoneNumber = this._fb.group({
    publicPhoneNumber: []
  })

  this.phoneNumber.get('publicPhoneNumber').valueChanges.subscribe((val) => {
      this.phoneNumber.get('publicPhoneNumber').setValue(this._remSpacePipe.transform(val), {emitEvent: false})
  })
}

在这里查看示例:https://stackblitz.com/edit/angular-vrsxou

以上是关于Angular:将自定义管道添加到addControl()元素的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义css和js添加到angular 4

如何将自定义图标添加到 Angular2 primeng Tree

如何将自定义样式添加到 Angular Material Table 单元格的一小部分?

如何以角度将自定义标头添加到httpRequest

找不到管道:Angular 5 自定义管道

将自定义数据加载到张量流管道中