我刚刚更新到RC6并遇到以下错误:
zone.min.js:1未处理的承诺拒绝:模板解析错误: '边栏'不是一个已知的元素: 1.如果'侧边栏'是一个Angular组件,然后验证它是否是此模块的一部分。 2.如果'侧边栏'是一个Web组件,然后添加" CUSTOM_ELEMENTS_SCHEMA"到' @ NgModule.schema'此组件禁止此消息。 ("
sidebar
不是一个组件。只是我在我的一个模板中使用的html标签。它们看起来像这样:
...
<sidebar class="main-nav">
...
</sidebar>
...
我尝试使用CUSTOM_ELEMENTS_SCHEMA
更新我的NgModule AppModule,如下所示:
@NgModule({
declarations: [...],
providers: [...],
imports: [BrowserModule, routing, HttpModule, FormsModule, TranslateModule.forRoot()],
bootstrap: [AppComponent],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class AppModule { }
但这似乎没有做任何事情。
有没有人有想法或暗示?
答案 0 :(得分:10)
感谢Pankaj Parkar的评论。
sidebar
似乎还没有被接受。我必须实施一种解决方法。
<强> sidebar.directive.ts 强>
import { Directive } from '@angular/core';
/**
* dummy directive to allow html-tag "sidebar"
*/
@Directive({ selector: 'sidebar'})
export class SidebarDirective {}
将其加入app.module.ts
@NgModule({
declarations: [..., SidebarDirective],
...
})
export class AppModule { }
答案 1 :(得分:4)
而不是去workaround
我会说每当你想创建组件时,在组件选择器之前都有一些后缀。就像假设我的应用程序名称是MoneyManagement
那样,我将在每个应用程序组件之前添加mm-
。此习惯将减少与插件添加的任何保留HTML tag
/ element
或sidebar
组件发生冲突的可能性。
与此处添加bootstrap /任何插件组件(此处已定义sidebar
组件)的解决方法不同。
遵循这样的约定将来会避免这个问题。
<mm-sidebar class="main-nav">
...
</mm-sidebar>