- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
{
"name": "ModalWindow",
"version": "1.0.0",
"repository": {
"type": "git",
"url": ""
},
"scripts": {
"build": "webpack --mode production",
"start": "webpack-dev-server --mode development --open"
},
"license": "MIT",
"dependencies": {
"@angular/common": "^5.0.0",
"@angular/compiler": "^5.0.0",
"@angular/core": "^5.0.0",
"@angular/forms": "^5.0.0",
"@angular/platform-browser": "^5.0.0",
"@angular/platform-browser-dynamic": "^5.0.0",
"@angular/router": "^5.0.0",
"core-js": "^2.5.5",
"rxjs": "6.3.0",
"rxjs-compat": "^6.3.3",
"sass": "^1.15.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@ng-bootstrap/ng-bootstrap": "^1.1.1",
"@types/node": "^10.0.4",
"angular2-template-loader": "^0.6.2",
"css-loader": "^0.28.11",
"html-webpack-plugin": "^3.2.0",
"less": "^3.0.4",
"less-loader": "^4.1.0",
"node-sass": "^4.10.0",
"raw-loader": "^0.5.1",
"sass-loader": "^7.1.0",
"style-loader": "^0.21.0",
"ts-loader": "^4.3.0",
"typescript": "^2.8.3",
"webpack": "4.8.1",
"webpack-cli": "^2.1.3",
"webpack-dev-server": "3.1.4"
}
}
这是我的 package.json,我不明白哪里出了问题,但 ng-bootstrap 中的标签集无法正常工作。
最佳答案
最新版本 4.0.0 和您在 package.json 中使用的版本(即 ^1.1.1)之间的主要区别在于,在最新版本中没有必要导入NgbModule
作为NgbModule.forRoot()
.例如-
@NgModule({
imports: [BrowserModule, FormsModule, ReactiveFormsModule, HttpClientModule, NgbModule],
declarations: [....],
bootstrap: [...]
})
但是如果你导入NgbModule
如上所示,在您使用的 1.1.1 版本中,您将得到以下错误
ERROR Error: StaticInjectorError(AppModule)[NgbTabset -> NgbTabsetConfig]: StaticInjectorError(Platform: core)[NgbTabset -> NgbTabsetConfig]: NullInjectorError: No provider for NgbTabsetConfig!
那是因为低版本需要用.forRoot()
在您的根模块中,以使其在您应用程序的所有其他模块和组件中可用。
因此对于您使用的版本 1.1.1,您需要在根模块中使用以下代码 app.module.ts
@NgModule({
imports: [BrowserModule, FormsModule, ReactiveFormsModule, HttpClientModule, NgbModule.forRoot()],
declarations: [AppComponent, NgbdTabsetBasic],
bootstrap: [AppComponent]
})
这是 Angular 5 和您正在使用的 ng-bootstrap 版本 1.1.1 的完整示例 -
package.json(和你用的一样)
{
"name": "ModalWindow",
"version": "1.0.0",
"repository": {
"type": "git",
"url": ""
},
"scripts": {
"build": "webpack --mode production",
"start": "webpack-dev-server --mode development --open"
},
"license": "MIT",
"dependencies": {
"@angular/common": "^5.0.0",
"@angular/compiler": "^5.0.0",
"@angular/core": "^5.0.0",
"@angular/forms": "^5.0.0",
"@angular/platform-browser": "^5.0.0",
"@angular/platform-browser-dynamic": "^5.0.0",
"@angular/router": "^5.0.0",
"@ng-bootstrap/ng-bootstrap": "1.1.1",
"core-js": "^2.5.5",
"rxjs": "6.3.0",
"rxjs-compat": "^6.3.3",
"sass": "^1.15.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@types/node": "^10.0.4",
"angular2-template-loader": "^0.6.2",
"css-loader": "^0.28.11",
"html-webpack-plugin": "^3.2.0",
"less": "^3.0.4",
"less-loader": "^4.1.0",
"node-sass": "^4.10.0",
"raw-loader": "^0.5.1",
"sass-loader": "^7.1.0",
"style-loader": "^0.21.0",
"ts-loader": "^4.3.0",
"typescript": "^2.8.3",
"webpack": "4.8.1",
"webpack-cli": "^2.1.3",
"webpack-dev-server": "3.1.4"
}
}
app.component.html
<div class="container-fluid">
<ngbd-tabset-basic></ngbd-tabset-basic>
</div>
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html'
})
export class AppComponent {
}
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { AppComponent } from './app.component';
import { NgbdTabsetBasic } from './tabset-basic';
@NgModule({
imports: [BrowserModule, FormsModule, ReactiveFormsModule, HttpClientModule, NgbModule.forRoot()],
declarations: [AppComponent, NgbdTabsetBasic],
bootstrap: [AppComponent]
})
export class AppModule {}
tabset-basic.html
<ngb-tabset>
<ngb-tab title="Simple">
<ng-template ngbTabContent>
<p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth
master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh
dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum
iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
</ng-template>
</ngb-tab>
<ngb-tab>
<ng-template ngbTabTitle><b>Fancy</b> title</ng-template>
<ng-template ngbTabContent>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid.
<p>Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table
craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl
cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia
yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean
shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero
sint qui sapiente accusamus tattooed echo park.</p>
</ng-template>
</ngb-tab>
<ngb-tab title="Disabled" [disabled]="true">
<ng-template ngbTabContent>
<p>Sed commodo, leo at suscipit dictum, quam est porttitor sapien, eget sodales nibh elit id diam. Nulla facilisi. Donec egestas ligula vitae odio interdum aliquet. Duis lectus turpis, luctus eget tincidunt eu, congue et odio. Duis pharetra et nisl at faucibus. Quisque luctus pulvinar arcu, et molestie lectus ultrices et. Sed diam urna, egestas ut ipsum vel, volutpat volutpat neque. Praesent fringilla tortor arcu. Vivamus faucibus nisl enim, nec tristique ipsum euismod facilisis. Morbi ut bibendum est, eu tincidunt odio. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris aliquet odio ac lorem aliquet ultricies in eget neque. Phasellus nec tortor vel tellus pulvinar feugiat.</p>
</ng-template>
</ngb-tab>
</ngb-tabset>
tabset-basic.ts
import {Component} from '@angular/core';
@Component({
selector: 'ngbd-tabset-basic',
templateUrl: './tabset-basic.html'
})
export class NgbdTabsetBasic { }
我们需要添加 Bootstrap 4.0 css 作为依赖。可以通过以下两种方式添加 css - 1.添加一个<link>
在 index.html
中使用样式表标记页 2. 如果您使用的是 angular-cli,则可以将其添加到 styles
中节.angular-cli.json
像
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
]
这是一个完整的工作演示 https://stackblitz.com/edit/angular-wfkcak
更新:通过您的 stackblitz 链接后,我发现您忘记添加 bootstrap 4 CSS 文件。我已将其添加到 index.html
中文件。
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
您也可以将其添加到 angular.json
(对于 Angular 6 )或 .angular-cli.json
(对于 Angular 5 )在 styles
下适用于您上面提到的数组。
这是更新的 stackblitz https://stackblitz.com/edit/angular-gmedf1
关于Angular ng-bootstrap tabset 字段不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53339926/
如果按“tab Two”,它工作得很好。但是,如果您尝试按“Tab one”返回,它不会显示 tab one 内容。 我尝试了不同的方法,但我找不到我应该在代码中修改什么以使其工作。 HTML:
我想提供一个来自另一个页面的链接 ,该链接打开我的包含这些选项卡的页面以查看其内容,直接说 tab2。我只是使用 CSS 脚本制作这些选项卡,没有 JS。我正在寻找可以像“mypage/#tab2”一
我有一个 R Shiny 应用程序,它计算不同选项卡集中的多个统计数据。由于计算非常密集,我使用 submitButton 来防止 react 。我现在的问题是每个计算(都在不同的标签集中)正在将输出
我在 AngularJS SPA 中使用 angular-ui-router 以及 bootstrap tabset 指令。 这是我的例子http://plnkr.co/V0Cs6BfnggXshaw
最近我开始使用 Angular 和 ng-bootstrap 进行开发。我正在 Reactive Forms 的帮助下处理一个表单,它包含一些 FormControls 和一个嵌套的 FormArra
我正在使用 Angular 5.2.10(也在 5.0.2 中测试)+ Bootstrap 4.1.1(也在 4.0.0 中测试)+ ng-bootstrap 1.1.2 并尝试制作 tab-set
有一个 uib-tabset 和一个等待 uib-tabset 内输入更改的指令,已到达该指令,但当它必须触发作用域时。$broadcast 不会调用该函数。 查看
长话短说,我正在尝试使用 knitr 来动态创建单独的标签集并在每个标签集内渲染一个图。下面是我失败尝试的描述。我希望有一个解决方案,但我怀疑我只是不了解 knitr 呈现输出的基本方式。因此,如果您
我有模式框,在模式框中我有选项卡。在第一个选项卡上,我需要选择项目,并在单击“下一步”按钮时将其分配给用户。如果成功,将自动更改下一个选项卡,其中该选项卡的配置。如果服务器响应错误,请留在同一选项卡上
当我选择一个选项卡时,我希望更改 URL。我应该为每个选项卡创建一个状态吗? 这是我的代码,无需更改状态即可正常工作。 我的app.js var myApp=angular.module('app',
目前在我的项目中,我有一个 angular2 选项卡集,它显示其他 html 模板,如下所示 - 标签.html 标签.ts import {PageOneComponent} fro
我正在尝试阅读 表格 从我的 Controller 。但我收到未定义的错误。这是我的示例代码。 HTML - Controller - $scope.formId.$setPrist
首先:我完全不熟悉 bootstrap。我想使用 vertical tabset将内容显示在选项卡的右侧。我的想法草图: Vertical content 1 Vertical content 2
我在我的 Angular 应用程序中使用 ui-tab。我有 2 个选项卡(tab1 和 tab2),当 tab2 中有按钮时,我想以编程方式将 tab1 设置为事件选项卡。 这是我的 html 代码
我一直在尝试使用 uib-tabset 动态创建选项卡,每个选项卡都应该包含不同的形式,但在我的情况下,第一种形式的文本框被生成的新选项卡覆盖(如果我以一种形式输入数据,它会被复制到其他形式形式)。我
{ "name": "ModalWindow", "version": "1.0.0", "repository": { "type": "git", "url": ""
我正在使用 Shiny 的包来创建一个应用程序。我想在我的 sidebarPanel 中包含一个 tabset 面板,就像 tabsetPanel() 在用户界面中为 mainPanel() 做的那样
我在尝试在我的 Controller 中查看由 View 中的过滤器生成的集合时遇到问题。 我将过滤后的数据存储在一个变量中: 我想在我的 Cont
我很好奇是否有人知道在 Rmarkdown 中如何默认不选择标签并显示其内容?我实际上已经非常接近了,所以例如使用下面的代码,由于没有内容的“虚拟”选项卡,默认情况下我没有弹出任何内容,但我希望该虚拟
我正在使用 angular 6 和 ng-bootstrap。我想改变的背景颜色 .nav-fill .nav-link.active { margin-top: -1px; bord
我是一名优秀的程序员,十分优秀!