我正在使用Angular 4和Angular Material 2.对于以下代码:
<form>
<md-form-field>
<input mdInput [ngModel]="userName" placeholder="User" [formControl]="usernameFormControl">
<md-error *ngIf="usernameFormControl.hasError('required')">
This is <strong>required</strong>
</md-error>
<input mdInput [ngModel]="password" placeholder="Password" [formControl]="passwordFormControl">
<md-error *ngIf="passwordFormControl.hasError('required')">
This is <strong>required</strong>
</md-error>
<button md-raised-button color="primary" [disabled]="!usernameFormControl.valid || !passwordFormControl.valid">Login</button>
</md-form-field>
</form>
我收到错误:
模板解析错误:'md-form-field'不是已知元素: 1.如果'md-form-field'是Angular组件,则验证它是否是此模块的一部分。 2.如果'md-form-field'是Web组件,则将'CUSTOM_ELEMENTS_SCHEMA'添加到此组件的'@ NgModule.schemas' 压制此消息。 (“[ERROR - &gt;]
你能帮我解决我失踪的地方吗?
以下是我输入材料模块的 app.module.ts
代码:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { LoginComponent } from './login.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import {
MdAutocompleteModule,
MdButtonModule,
MdButtonToggleModule,
MdCardModule,
MdCheckboxModule,
MdChipsModule,
MdCoreModule,
MdDatepickerModule,
MdDialogModule,
MdExpansionModule,
MdGridListModule,
MdIconModule,
MdInputModule,
MdListModule,
MdMenuModule,
MdNativeDateModule,
MdPaginatorModule,
MdProgressBarModule,
MdProgressSpinnerModule,
MdRadioModule,
MdRippleModule,
MdSelectModule,
MdSidenavModule,
MdSliderModule,
MdSlideToggleModule,
MdSnackBarModule,
MdSortModule,
MdTableModule,
MdTabsModule,
MdToolbarModule,
MdTooltipModule
} from '@angular/material';
import {CdkTableModule} from '@angular/cdk';
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
HttpModule,
FormsModule,
ReactiveFormsModule,
MdAutocompleteModule,
MdButtonModule,
MdButtonToggleModule,
MdCardModule,
MdCheckboxModule,
MdChipsModule,
MdCoreModule,
MdDatepickerModule,
MdDialogModule,
MdExpansionModule,
MdGridListModule,
MdIconModule,
MdInputModule,
MdListModule,
MdMenuModule,
MdNativeDateModule,
MdPaginatorModule,
MdProgressBarModule,
MdProgressSpinnerModule,
MdRadioModule,
MdRippleModule,
MdSelectModule,
MdSidenavModule,
MdSliderModule,
MdSlideToggleModule,
MdSnackBarModule,
MdSortModule,
MdTableModule,
MdTabsModule,
MdToolbarModule,
MdTooltipModule,
CdkTableModule
],
declarations: [
AppComponent,
LoginComponent
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
答案 0 :(得分:53)
<强>更新强>
由于 2.0.0-beta.12
, md
前缀已被删除,而支持 mat
前缀。有关详细信息,请参阅此CHANGELOG:
所有&#34; md&#34;前缀已被删除。请参阅中的deprecation notice beta.11备注了解更多信息。
更新后, <md-form-field>
应更改为 <mat-form-field>
。此外, MdFormFieldModule
和 MdInputModule
应更改为 MatFormFieldModule
和 {{1 }} 强>:
MatInputModule
以下是使用 import { MatFormFieldModule } from '@angular/material';
import { MatInputModule } from '@angular/material';
@NgModule({
imports: [
....
MatFormFieldModule,
MatInputModule,
....
]
的Updated StackBlitz演示的链接。
原文:
2.0.0-beta.12
在2.0.0-beta.10中引入。请参阅changelog文档中的以下内容:
md-input-container 重命名为 md-form-field (仍在 向后兼容)。旧选择器将在后续版本中删除。
以下是完成CHANGELOG的链接。
要使用 <md-form-field>
选择器,请确保安装了2.0.0-beta.10版本的材料。此外,您需要在 <md-form-field>
导入中导入 MdFormFieldModule
模块:
AppModule
对于任何偶然发现此问题的人,这里是StackBlitz上working demo的链接。
答案 1 :(得分:1)
如果您发现导入文件有困难,那么您只需要导入一种方法即可。
首先导入.component.ts
中的所有必需组件导入模块中的特定模块.module.ts
然后在@NgModule ({
imports : [ <Example>Module ]
})
您想要在角度应用程序中导入formcontrol的示例
1)。 app.component.ts
`import { FormGroup, FormControl } from '@angular/forms'`
2)。 app.module.ts
import { FormsModule } from '@angular/forms'
中的app.module.ts下面的
@NgModule ({
imports : [ FormsModule ]
})
答案 2 :(得分:0)
您可以像这样使用md-input-container:
<md-input-container>
<input mdInput name="name" [(ngModel)]="yourModel" class="filter-input-field"/>
</md-input-container>
&#13;