md-form-field不是已知元素Angular Material

时间:2017-09-12 09:06:54

标签: javascript angular angular-material

错误

Uncaught Error: Template parse errors:
'md-form-field' is not a known element:
 1. If 'md-form-field' is an Angular component, then verify that it is part 
of this module.
2. If 'md-form-field' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' 
to the '@NgModule.schemas' of this component to suppress this message. ("

       

我用角度材料实现了角度输入

url https://material.angular.io/components/input/overview

HTML

       <form class="example-form">
      <md-form-field class="example-full-width">
     <input mdInput placeholder="Favorite food" value="Sushi">
    </md-form-field>
    </form>
谷歌搜索后我找到了链接

  

Angular Material2 : 'md-form-field' is not a known element

  import { MdFormFieldModule } from '@angular/material';

  @NgModule({
  imports: [
  ....
  MdFormFieldModule,
   ....
 ]

app.module.ts 导入后

  

从&#39; @ angular / material&#39;中导入{MdFormFieldModule};

    ERROR in D:/frontend/src/app/app.module.ts (97,10): Module '"D:/frontendapp/node_modules/@angular/material/material"' has no exported member 'MdFormFieldModule'.
  • 任何人都可以建议我缺少什么。

3 个答案:

答案 0 :(得分:1)

导入此模块:MdInputModule 然后使用此代码剪辑并享受:

&#13;
&#13;
<md-input-container>
   <input mdInput placeholder="User">
</md-input-container>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

添加schemas: [CUSTOM_ELEMENTS_SCHEMA]import {MdInputModule} from '@angular/material'代替 MdFormFieldModule 它已过时。

@NgModule({
    declarations: [
        ..
    ],
    imports: [
        MdInputModule,
        ..
    ],
    schemas: [CUSTOM_ELEMENTS_SCHEMA]
})

到你的模块

答案 2 :(得分:0)

如果您在更新版本的Angular中收到该错误,我发现AngularMaterial indicates它已将组件标记(无论您想要调用它)从md-form-field更改为{{1在最近的版本中。请注意mat-form-field中的 mat 。我从版本2.0.0-beta.3更新到版本5.2.5。 This breaking change appears to have come in 2.0.0-beta.12.

虽然我需要在mat-form-field文件中导入import { MatInputModule } from '@angular/material';,但app.module.ts文件中的组件标记更改减轻了控制台错误.html

注意:我在将'md-form-field' is not a known element:标记升级为md-input-container标记时遇到了这个问题,我花了很多时间才意识到这些标记已经更新为新版{ {1}}。无论如何,如果您使用md-form-fieldmat-form-field从旧版本的材料更新为更新版本的材料,我建议您只需更新到md-input-container即可

注意2:确保注意任何切向更新 - 例如更改指令名称。例如,如果您遇到md-form-field的任何情况,则可能需要将其更改为mat-form-field。类似的东西。通过您的代码,mdInputmatInput次更改可能会很多。如果您的编辑器具有跨多个文件功能的“替换所有”,那么它将是您最好的朋友。除了旧的AngularMaterial世界之外,至少md不是一对普通的字母。