为什么Modal打开一个新的打开弹窗?
Why does Modal open a new open pop up?
当我尝试使用 ng-bootstrap
打开模式时注意到一个我无法理解的奇怪行为
openModal(content,modalActionType) {
this.modalActionType = modalActionType;
console.log(this.modalActionType);
open(content);
return false;
}
open(content) {
this.modalService.open(content, {ariaLabelledBy: 'modal-basic-title'})
.result.then((saveOrCancel) => {
}, (dismissReason) => {});
}
HTML
<a class="dropdown-item" (click)="openModal(content,'Reset')">Reset Password</a>
当我单击“重置密码”时,尽管我从 openModal
函数返回 false,但会打开一个新选项卡。
奇怪的是,下面的代码可以正常工作,模式按预期打开。为什么会这样?
openModal(content,modalActionType) {
this.modalActionType = modalActionType;
console.log(this.modalActionType);
this.modalService.open(content, {ariaLabelledBy: 'modal-basic-title'})
.result.then((saveOrCancel) => {
}, (dismissReason) => {});
return false;
}
问题出在您的 openModal
方法中:
openModal(content,modalActionType) {
this.modalActionType = modalActionType;
console.log(this.modalActionType);
open(content);
return false;
}
方法 open(content);
的第三行应更改为 this.open(content);
以确保它调用您在组件 TypeScript 文件中定义的 open
方法而不是 window.open()
- 这将打开一个新的 window 或选项卡(取决于浏览器)。
请参阅 this StackBlitz 进行演示。如果您将 modal-basic.ts
中的第 18 行从 this.open(content);
更改为 open(content);
,它将打开一个新的浏览器选项卡,而不是打开模式。
当我尝试使用 ng-bootstrap
openModal(content,modalActionType) {
this.modalActionType = modalActionType;
console.log(this.modalActionType);
open(content);
return false;
}
open(content) {
this.modalService.open(content, {ariaLabelledBy: 'modal-basic-title'})
.result.then((saveOrCancel) => {
}, (dismissReason) => {});
}
HTML
<a class="dropdown-item" (click)="openModal(content,'Reset')">Reset Password</a>
当我单击“重置密码”时,尽管我从 openModal
函数返回 false,但会打开一个新选项卡。
奇怪的是,下面的代码可以正常工作,模式按预期打开。为什么会这样?
openModal(content,modalActionType) {
this.modalActionType = modalActionType;
console.log(this.modalActionType);
this.modalService.open(content, {ariaLabelledBy: 'modal-basic-title'})
.result.then((saveOrCancel) => {
}, (dismissReason) => {});
return false;
}
问题出在您的 openModal
方法中:
openModal(content,modalActionType) {
this.modalActionType = modalActionType;
console.log(this.modalActionType);
open(content);
return false;
}
方法 open(content);
的第三行应更改为 this.open(content);
以确保它调用您在组件 TypeScript 文件中定义的 open
方法而不是 window.open()
- 这将打开一个新的 window 或选项卡(取决于浏览器)。
请参阅 this StackBlitz 进行演示。如果您将 modal-basic.ts
中的第 18 行从 this.open(content);
更改为 open(content);
,它将打开一个新的浏览器选项卡,而不是打开模式。