将ng2-bootstrap添加到angular2-seed时,'tab'不是已知的元素错误

时间:2016-09-20 15:41:53

标签: angular ng2-bootstrap

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

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

我已按照说明isWhiteSpace尝试了几种变体,但它只是不想工作。我让它在其他使用不同版本的angular2-seed的项目中工作,所以可能有些东西已经改变,但尚未在他们的wiki中记录。

我创建了一个展示我的问题的回购:here

正如我所说,它是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">`

3 个答案:

答案 0 :(得分:16)

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

Ng2BootstrapModule导入home.module.ts就可以了。

感谢@mgechev的回答!

答案 1 :(得分:1)

为“tabset”解决的问题不是已知元素:

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

在 App.module.ts 中

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

Import:[TabsModule.forRoot()]

答案 2 :(得分:-1)

即使将ng2-bootstrap添加到项目中,您仍需要在index.html中包含cdn和模块中的样式表。让quick start看一看,确保你没有遗漏任何东西。