'tab' is not a known element 将 ng2-bootstrap 添加到 angular2-seed 时出现错误

'tab' is not a known element errors when adding ng2-bootstrap to angular2-seed

我正在尝试将 ng2-bootstrap 添加到 angular2- 的 新克隆 中seed 项目,但我不断收到以下错误(或类似错误):

Unhandled Promise rejection: Template parse errors: 'tab' is not a known element

我已按照说明进行操作 here 并尝试了多种变体,但就是行不通。我让它在其他使用不同版本的 angular2-seed 的项目中工作,所以也许有些变化还没有记录在他们的 wiki 中。

我创建了一个 repo 来展示我的问题:https://github.com/danielcrisp/angular2-seed

正如我所说,它是 angular2-seed 的全新克隆,具有以下更改:

$ npm install ng2-bootstrap --save

然后更新配置:

this.SYSTEM_CONFIG_DEV.paths['ng2-bootstrap'] =
  `${this.APP_BASE}node_modules/ng2-bootstrap/ng2-bootstrap.js`;

this.SYSTEM_BUILDER_CONFIG.packages['ng2-bootstrap'] = {
    main: 'ng2-bootstrap.js',
    defaultExtension : 'js'
};

Ng2BootstrapModule 导入 NgModule

然后我添加了一些标签进行测试。

<tabset>
  <tab>1</tab>
  <tab>2</tab>
</tabset>

如果我从 HTML 中删除选项卡,我不会收到任何错误。如果我尝试其他 ng2-bootstrap 组件,我也会出错,例如

<button type="button" class="btn btn-primary" [(ngModel)]="singleModel" btnCheckbox btnCheckboxTrue="1" btnCheckboxFalse="0">`

即使将 ng2-bootstrap 添加到您的项目中,您仍然需要在 index.html 中包含来自 cdn 和模块的样式表。请查看 quick start 并确保您没有遗漏任何内容。

事实证明,我需要将 Ng2BootstrapModule 包含到每个使用它的子 NgModule 中,而不仅仅是主根 NgModule.

Ng2BootstrapModule 导入 home.module.ts 就成功了。

感谢@mgechev 的回答!

解决的问题 'tabset' 不是已知元素:

  1. 如果 'tabset' 是一个 Angular 组件,则验证它是该模块的一部分。
  2. 要允许任何元素将 'NO_ERRORS_SCHEMA' 添加到此组件的“@NgModule.schemas”。

在App.module.ts

Add import { TabsModule } from 'ngx-bootstrap/tabs';

Import:[TabsModule.forRoot()]