【问题标题】:Angular Material input fields are not styledAngular Material 输入字段没有样式
【发布时间】:2018-02-25 12:13:58
【问题描述】:

我想在我的项目中使用棱角材料。
我已将 @import '~@angular/material/prebuilt-themes/pink-bluegrey.css'; 添加到我的 style.css 文件中,它工作正常 - 表格、卡片、工具栏的样式正确,但表单不正确。
我使用了示例 here 中的代码,只需复制和粘贴即可,结果如下所示:

我做错了什么?这是我的模块(它不是主模块):

import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {HttpClientModule} from '@angular/common/http';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {ImageListComponent} from './image-list.component';
import {ImageListService} from './image-list.service';
import {FileSizePipe} from '../shared/file-size.pipe';
import {
  MdAutocompleteModule,
  MdButtonModule,
  MdCardModule,
  MdChipsModule,
  MdTableModule
} from '@angular/material';
import {CdkTableModule} from '@angular/cdk/table';
import {EnvironmentVariableComponent, ImageRunComponent} from './image-run.component';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import { InputTestComponent } from './input-test.component';

@NgModule({
  imports: [
    CommonModule,
    HttpClientModule,
    BrowserAnimationsModule,
    MdButtonModule,
    MdCardModule,
    MdChipsModule,
    MdTableModule,
    CdkTableModule,
    MdAutocompleteModule,
    FormsModule,
    ReactiveFormsModule,
  ],
  declarations: [ImageListComponent, FileSizePipe, ImageRunComponent, EnvironmentVariableComponent, InputTestComponent],
  providers: [ImageListService],
  exports: [ImageListComponent, ImageRunComponent, InputTestComponent]
})
export class ImageModule {
}

这是我的主要模块:

import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';

import {AppComponent} from './app.component';
import {ImageModule} from './image/image.module';
import {MdToolbarModule} from "@angular/material";
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';


@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    ImageModule,
    BrowserAnimationsModule,
    MdToolbarModule,
    FormsModule,
    ReactiveFormsModule
  ],
  bootstrap: [AppComponent]
})
export class AppModule {
}

我不明白我做错了什么。我的表单的外观和行为不符合预期。

【问题讨论】:

    标签: angular angular-material angular-material2


    【解决方案1】:

    您需要在模块导入中导入输入和表单域模块:

    import {
        MdInputModule,
        MdFormFieldModule
    } from '@angular/material';
    
    // ....
    imports: [
        MdInputModule,
        MdFormFieldModule,
    ],
    

    【讨论】:

      【解决方案2】:

      这也可能是因为您没有用<mat-form-field> 包裹您的<input matInput>

      【讨论】:

      • 谢谢,但为什么会这样?我敢打赌,我之前使用的 matInputs 没有包含在 mat-form-fields 中,它们显示得很好。
      • 指令可以添加类,如果类是全局定义的,那就可以了,但是如果封装了样式,则需要一个组件来应用样式。我忘记了在这种情况下它应该如何工作,但这可以解释它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 2019-02-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2018-07-10
      相关资源
      最近更新 更多