6

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

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

我已经按照这里的说明尝试了几种变体,但它就是不想工作。我让它在使用不同版本的 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'
};

导入Ng2BootstrapModuleNgModule.

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

<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">`
4

3 回答 3

16

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

导入Ng2BootstrapModulehome.module.ts可以了。

感谢@mgechev 的回答!

于 2016-09-20T17:05:53.337 回答
2

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

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

在 App.module.ts

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

Import:[TabsModule.forRoot()]
于 2021-03-21T17:19:27.737 回答
-1

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

于 2016-09-20T15:50:49.567 回答