以编程方式打开 bootstrap 模态
Open ng-bootstrap modal programmatically
我有一个 angular 4 页,其中包含一个 ng-bootstrap 模式。我的代码看起来像这样。
foo.html
[...]
<button class="btn btn-sm btn-secondary material-icons"
(click)="open(content)">search</button>
<ng-template #content let-c="close" let-d="dismiss">
content in here
</ng-template>
[...]
foo.ts
[...]
constructor(private modalService: NgbModal) { }
[...]
open(content) {
let options: NgbModalOptions = {
size: 'lg'
};
this.modalService.open(content, options);
}
[...]
现在,当我单击按钮时,模式打开。我现在要做的是在 ngChanges 上打开模型。
ngOnChanges(changes: any) {
open(content)
}
我的问题是:如何在此处获取 "content"?有没有办法以编程方式获取 ng-template?提前致谢!
要访问 class 中的 content
元素,请声明:
@ViewChild('content', { static: false }) private content;
^for Angular8+
并在 class 的顶部添加相应的导入:
import { ViewChild } from '@angular/core';
最后在更改检测时为该元素调用 open 方法:
ngOnChanges(changes: any) {
this.open(this.content);
}
从 Angular 8 你还应该传递静态选项:{static: false}
in ViewChild
import { ViewChild } from '@angular/core';
@ViewChild('content', { static: false }) private content;
constructor(private modalService: NgbModal) { }
this.modalService.open(this.content);
我有一个 angular 4 页,其中包含一个 ng-bootstrap 模式。我的代码看起来像这样。
foo.html
[...]
<button class="btn btn-sm btn-secondary material-icons"
(click)="open(content)">search</button>
<ng-template #content let-c="close" let-d="dismiss">
content in here
</ng-template>
[...]
foo.ts
[...]
constructor(private modalService: NgbModal) { }
[...]
open(content) {
let options: NgbModalOptions = {
size: 'lg'
};
this.modalService.open(content, options);
}
[...]
现在,当我单击按钮时,模式打开。我现在要做的是在 ngChanges 上打开模型。
ngOnChanges(changes: any) {
open(content)
}
我的问题是:如何在此处获取 "content"?有没有办法以编程方式获取 ng-template?提前致谢!
要访问 class 中的 content
元素,请声明:
@ViewChild('content', { static: false }) private content;
^for Angular8+
并在 class 的顶部添加相应的导入:
import { ViewChild } from '@angular/core';
最后在更改检测时为该元素调用 open 方法:
ngOnChanges(changes: any) {
this.open(this.content);
}
从 Angular 8 你还应该传递静态选项:{static: false}
in ViewChild
import { ViewChild } from '@angular/core';
@ViewChild('content', { static: false }) private content;
constructor(private modalService: NgbModal) { }
this.modalService.open(this.content);