gpt4 book ai didi

javascript - 如何使用 ng-bootstrap (Angular 2) 显示简单模式

转载 作者:行者123 更新时间:2023-11-30 11:45:48 25 4
gpt4 key购买 nike

我正在尝试按照以下页面显示一个带有 Ng2-bootstrap 的简单模态:https://ng-bootstrap.github.io/#/components/modal

但是我收到如下错误:

Error in ./AppComponent class AppComponent - inline template:7:0 caused by: Missing modal container, add <template ngbModalContainer></template> to one of your application templates.

ORIGINAL EXCEPTION: Missing modal container, add <template ngbModalContainer></template> to one of your application templates.

我做错了什么?我有以下代码来尝试使这项工作正常进行:

Index.html:

<body>
<app-root>Loading...</app-root>
<template ngbModalContainer></template>
</body>

app.module.ts:

import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
...
@NgModule({...
imports: [
BrowserModule,
FormsModule,
HttpModule,
NgbModule.forRoot() ...

app.component.ts:

import { NgbModal, NgbActiveModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';
import { SasModalComponent } from './sas-modal/sas-modal.component';
...
constructor(..., private modalService: NgbModal){
}
...
open() {
console.log("trying to open");
const modalRef = this.modalService.open(SasModalComponent);
}

app.component.html

<button class="btn btn-lg btn-outline-primary" (click)="open(content)">Launch demo modal</button>

sas-modal.component.ts

import { NgbModal, NgbActiveModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';
...
@Component({
selector: 'sas-modal',
templateUrl: './sas-modal.component.html',
styleUrls: ['./sas-modal.component.css']
})
export class SasModalComponent {
closeResult: string;

constructor(private modalService: NgbModal) {}

open(content) {
this.modalService.open(content);
}
}

sas-modal.component.html:

<template #content let-c="close" let-d="dismiss">
<div class="modal-header">
<button type="button" class="close" aria-label="Close" (click)="d('Cross click')">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<p>One fine body&hellip;</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" (click)="c('Close click')">Close</button>
</div>
</template>

最佳答案

sas-component.ts 应该是:-

import { NgbModal, NgbActiveModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';
...
@Component({
selector: 'sas-modal',
templateUrl: './sas-modal.component.html',
styleUrls: ['./sas-modal.component.css']
})
export class SasModalComponent {
closeResult: string;

constructor(private activeModal: NgbActiveModal) {}

}

app.module.ts 应该在声明数组中包含 SasModuleComponent 和一个包含 SasModuleComponent 的 entryComponent 字段:-

@NgModule({
imports: [ BrowserModule,
FormsModule , HttpModule, NgbModule.forRoot()],
declarations: [ AppComponent, SasModalComponent],
bootstrap: [ AppComponent ],
entryComponents: [SasModalComponent]
})

您的模块文件中的@NgModule() 中需要一个 entryComponent 字段,因为您要在此处动态加载 SasModuleComponent this.modalService.open(SasModalComponent)

关于javascript - 如何使用 ng-bootstrap (Angular 2) 显示简单模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41030799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com