Angular 错误:模板分析错误:';mat卡';不是已知元素:
大约两个月前,我启动了一个Angular 4 Material项目,当时安装了所有当前的npm,我正在使用Material.Angular.io中的大部分组件。从那时起,Angular 5.0.0已经推出。我在新的更新上重建了project,控制台出现以下错误 错误:模板分析错误:“mat card”不是已知元素: 1.如果“mat卡”是一个角度组件,则确认它是该模块的一部分。 2.如果“mat card”是Web组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到此组件的“@NgModule.schemas”以抑制此消息Angular 错误:模板分析错误:';mat卡';不是已知元素:,angular,angular-material,angular5,Angular,Angular Material,Angular5,大约两个月前,我启动了一个Angular 4 Material项目,当时安装了所有当前的npm,我正在使用Material.Angular.io中的大部分组件。从那时起,Angular 5.0.0已经推出。我在新的更新上重建了project,控制台出现以下错误 错误:模板分析错误:“mat card”不是已知元素: 1.如果“mat卡”是一个角度组件,则确认它是该模块的一部分。 2.如果“mat card”是Web组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到此组件的“@NgM
我已经检查了安装,并且相信我有所有最新的东西,但是以前工作过的代码现在失败了。这是A5的新要求,还是材料包尚未准备就绪?您是否可以尝试从单独的入口点导入
MatCardModule
(又名@angular/material/card
)?这对我很管用
如果你不提供任何代码,否则我真的帮不了你。我最终启动了一个新的应用程序
npm cache clean -f
npm install -g n
ng new myAppName
然后我一次复制一个组件到components文件夹中。对于每个副本,我都运行了ng serve,并修复了每个问题(例如将导入添加到app.module.ts文件等)。我只在当前良好代码需要时安装npm组件
npm install myComponent --save
当我继续进行时,我发现了一些过时的md元素(比如md卡),并将它们转换为mat元素版本。有趣的是,显然在Angular 4中,他们支持相同组件的mat和md版本,但在5中,他们似乎不赞成使用某些组件
这是一个漫长的下午,但它帮助我清除了所有我尝试和放弃的npm模块,现在一切都正常了。哇!我又碰到了这个问题,真的想弄明白。如果您遵循材料侧导航模块之类的特定文档,则可能会导致您在app.module.ts中拆分@NgModule声明,以将导出与其他导出分开,如
@NgModule({
exports: [
myModule,
anotherModule
],
})
export class MaterialModule {}
@NgModule({
imports: [
... all the rest of your stuff]
declarations: [
... all your custom Components
})
export class AppModule {}
在这种情况下,在拆分它们之后,当您稍后使用
ng g component components/myNewModule
它可能会在另一个@NgModule部分下添加一个新的、附加的“声明”,从而中断对这些组件的访问,比如mat卡!只需将新添加的声明向下移动到其他声明,问题就会消失
我对此进行了两次测试,如果出现错误,它似乎可以解决问题:模板解析错误:“mat card”不是上面的已知元素。在Angular 6中
app.module.ts:
import { MatCardModule } from '@angular/material';
...
@NgModule({
declarations: [
AppComponent,...
],
imports: [
...
MatCardModule,
....
]
...
})
html:
它起作用了!
显示您的代码请为我搜索!非常感谢。我认为从“@angular/material”导入“MatInputModule”就足够了,但显然您必须单独导入卡模块。找到了有关导入的良好解释
<mat-card>
<p>
it works!
</p>
</mat-card>