javascript - 如何在 Angular Material V6 中列出国际电话号码?

标签 javascript jquery angular5 angular-material2

我正在开发一个使用 Angular Material V6 的应用程序。我想在 Material 组件文本框中列出带有标志的国际电话号码。我在互联网上搜索并找到了一个 npm 模块,但它使用的是引导文本组件。我添加了一个屏幕截图来查看它。 Bootstrap 不同于 Angular Material 文本框组件。

现在是:

enter image description here

Angular Material 组件:

enter image description here

示例代码:

<mat-form-field color="warn" class="form-field-width">
 <int-phone-prefix matInput [locale]="'es'"></int-phone-prefix>
</mat-form-field>

错误:

ERROR Error: mat-form-field must contain a MatFormFieldControl.

请给我你的建议。提前致谢。

最佳答案

我让它在不同的依赖项下工作,它是 ng2-tel-input .示例源代码(最重要的是,请记住遵循存储库中提供的“安装”):

contact.component.html

<mat-form-field appearance="outline">
  <input 
    matInput 
    ng2TelInput 
    [ng2TelInputOptions]="{initialCountry: 'us'}"
    formControlName="formControlPhone" 
    (hasError)="hasError($event)" />
  <mat-error
    *ngIf="
    !contactForm.get('formControlPhone').valid &&
    contactForm.get('formControlPhone').touched
    "
  >This is an <strong>invalid</strong> phone number.
  </mat-error>
</mat-form-field>

contact.module.ts

import { NgModule } from '@angular/core';
import { ContactComponent } from './contact/contact.component';
import { CommonModule } from '@angular/common'
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import {
  MatFormFieldModule,
  MatInputModule
} from '@angular/material';
import {Ng2TelInputModule} from 'ng2-tel-input';

@NgModule({
  declarations: [ContactComponent],
  imports: [
    FormsModule,
    ReactiveFormsModule,
    MatFormFieldModule,
    MatInputModule,
    Ng2TelInputModule
  ],
})
export class ContactModule {}

contact.component.ts

import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@Component({
  selector: 'app-contact',
  templateUrl: './contact.component.html',
  styleUrls: ['./contact.component.scss']
})
export class ContactComponent {
  public contactForm: FormGroup;
  constructor(private formBuilder: FormBuilder) {
    this.contactForm = this.formBuilder.group({
      formControlPhone: ['', Validators.required]
    });
  }
  hasError(event: any): void {
    if (!event && this.contactForm.value.formControlPhone !== '') {
      this.contactForm.get('formControlPhone').setErrors(['invalid_cell_phone', true]);
    }
  }
}

关于javascript - 如何在 Angular Material V6 中列出国际电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50692528/

相关文章:

javascript - 来自 datepicker onSelect 的 Jquery ajax 调用消失了文本框

javascript - 现有 jQuery 对象的 jQuery 多个选择器

css - 如何更改 ngBootstrap datepicker 边框半径

typescript - HttpInterceptor 上的递归过多

javascript - 如何通过 JavaScript 解析和更改实时网站上 CSS 样式表的颜色?

javascript - 在 window.resize 事件之后没有注册 Mousemove 事件

javascript - 这两者有什么区别?

javascript - 将数据表打印为默认表

Angular:如何访问父组件中的子组件模板变量?

javascript - 停止 JavaScript 中的执行