Cli*_* Wg 1 input angular-material angular
输入没有正确的样式,并且输入类型被隐藏,只有当我单击窗口时,我才能看到用于选择国家/地区的弹出窗口。
有人可以帮我设计元素的样式吗?
我已执行以下操作,没有错误,但预期输出的样式不正确。我可以看到任何用于输入电话号码的输入文本。
我已在 app.module.ts 中安装并导入了该模块
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-
browser/animations';
import { NgxMatIntlTelInputModule } from "ngx-mat-intl-tel-input";
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MaterialModule } from "./material/material.module";
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
FormsModule, ReactiveFormsModule,
NgxMatIntlTelInputModule ,
MaterialModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)在我的 app.component.ts 中创建 formgroup。
import { Component, OnInit } from '@angular/core';
import { FormArray,FormControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit{
phoneForm = new FormGroup({
phone: new FormControl('', Validators.required)
});
ngOnInit() {
// initialization logic goes here
}
}
Run Code Online (Sandbox Code Playgroud)在我的 app.component.html-template 中添加以下代码片段
<form #f="ngForm" [formGroup]="phoneForm">
<div>
<ngx-mat-intl-tel-input style="border: 2px solid red; padding: 10px;margin-left: 100px;width: 100px; height: 100px;"
[preferredCountries]="['us', 'gb']"
[enableAutoCountrySelect]="true"
[enablePlaceholder]="true"
name="phone"
formControlName="phone" #phone></ngx-mat-intl-tel-input>
<mat-hint>e.g. {{phone.selectedCountry.placeHolder}}</mat-hint>
<mat-error *ngIf="f.form.controls['phone']?.errors?.required">Required Field</mat-error>
<mat-error *ngIf="f.form.controls['phone']?.errors?.validatePhoneNumber">Invalid Number</mat-error>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)考虑到你的 html 组件中有这个
<mat-form-field appearance="outline">
<ngx-mat-intl-tel-input
[preferredCountries]="['us', 'gb']"
[enablePlaceholder]="true"
[enableSearch]="true" name="phone" #phone>
</ngx-mat-intl-tel-input>
Run Code Online (Sandbox Code Playgroud)
您需要添加 css 以使国家/地区下拉列表可见。最初加载组件时,国家/地区下拉列表的不透明度为 0,因此您需要通过将不透明度添加为 1 来覆盖它!重要。
为了对齐,我添加了 8px 底部定位
.country-selector{
opacity:1 !important;
bottom:8px !important;
}
Run Code Online (Sandbox Code Playgroud)
将电话输入字段与国家/地区下拉列表对齐
input:not(.country-search){
bottom: 3px;
left: 10px;
}
Run Code Online (Sandbox Code Playgroud)
国家/地区下拉菜单占用整个窗口高度,因此我将最大高度设置为 250px,字体大小设置为 0.8rem
.mat-menu-content:not(:empty){
max-height:250px;
}
.country-list-button{
font-size: 0.8rem!important;
}
Run Code Online (Sandbox Code Playgroud)
这是相同的 stackblitz 项目:https ://stackblitz.com/edit/ngx-mat-intl-tel-input-demo
| 归档时间: |
|
| 查看次数: |
9369 次 |
| 最近记录: |