显示模式如果 Angular 中的条件为真?
Display Modal If condition is true in Angular?
我只想在成功生成工单后显示模式。
当用户单击按钮 "mybutton" 时,只有在没有错误的情况下才会打开模式。
ticket.components.ts
constructor(private _service: TicketService, private _idservice: SharedService) {
}
generateTicket(){
this._idservice.currentMessage.subscribe(message => this.userId = message)
this._service.createTicketFromRemote(this.ticket, this.userId).subscribe(
data => {
console.log("response recieved");
this.msg = "Ticket Successfully Generated";
// code to display modal
},
error => {
this.open_Modal = false;
console.log("exception occured");
console.log(error);
// do nothing
}
)
}
ticket.component.html
<button name="myButton" (click)="generateTicket()" class="btn btn-primary">Generate Ticket</button>
<!-- Modal -->
<div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Modal Title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p class="text-center">Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-warning">Print</button>
<button type="submit" class="btn btn-primary" data-dismiss="modal" >Edit</button>
</div>
</div>
</div>
</div>
您可以使用简单的 ngIf
来实现:
generateTicket(){
this._idservice.currentMessage.subscribe(message => this.userId = message)
this._service.createTicketFromRemote(this.ticket, this.userId).subscribe(
data => {
console.log("response recieved");
this.msg = "Ticket Successfully Generated";
this.open_Modal = true; // <------
},
error => {
this.open_Modal = false;
console.log("exception occured");
console.log(error);
// do nothing
}
)
}
在 html 中,将 ngIf 添加到主模态 div:
<div *ngIf="open_Modal" class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Modal Title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p class="text-center">Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-warning">Print</button>
<button type="submit" class="btn btn-primary" data-dismiss="modal" >Edit</button>
</div>
</div>
</div>
</div>
您还可以将主 div 包装到 ng-container
中,其中包含 ngIf,而不是在 div 中,以使代码更简洁:
<ng-container *ngIf="open_Modal">
<div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Modal Title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p class="text-center">Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-warning">Print</button>
<button type="submit" class="btn btn-primary" data-dismiss="modal" >Edit</button>
</div>
</div>
</div>
</div>
</ng-container>
class 模态有 css 属性 dispaly:none 所以你必须添加显示:块 属性 来显示模态。
Html
添加 ngClass 指令以有条件地添加或删除 showModal css class
div class="modal fade" [ngClass]="{'showModal': openModal}" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
.......
</div>
课时
generateTicket(){
this._idservice.currentMessage.subscribe(message => this.userId = message)
this._service.createTicketFromRemote(this.ticket, this.userId).subscribe(
data => {
console.log("response recieved");
this.msg = "Ticket Successfully Generated";
this.openModal = true; // <------ Like Jacopo Sciampi said
},
用于关闭模态。
closeModal() {
this.openModal = false;
}
css
.showModal {
display:block;
}
您可以简单地使用此行从您的 .ts 文件打开模式
$('#exampleModalLong').modal('show');
另外不要忘记声明美元符号“$”,在 .ts 文件中导入后使用这一行
declare var $: any;
我只想在成功生成工单后显示模式。 当用户单击按钮 "mybutton" 时,只有在没有错误的情况下才会打开模式。
ticket.components.ts
constructor(private _service: TicketService, private _idservice: SharedService) {
}
generateTicket(){
this._idservice.currentMessage.subscribe(message => this.userId = message)
this._service.createTicketFromRemote(this.ticket, this.userId).subscribe(
data => {
console.log("response recieved");
this.msg = "Ticket Successfully Generated";
// code to display modal
},
error => {
this.open_Modal = false;
console.log("exception occured");
console.log(error);
// do nothing
}
)
}
ticket.component.html
<button name="myButton" (click)="generateTicket()" class="btn btn-primary">Generate Ticket</button>
<!-- Modal -->
<div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Modal Title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p class="text-center">Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-warning">Print</button>
<button type="submit" class="btn btn-primary" data-dismiss="modal" >Edit</button>
</div>
</div>
</div>
</div>
您可以使用简单的 ngIf
来实现:
generateTicket(){
this._idservice.currentMessage.subscribe(message => this.userId = message)
this._service.createTicketFromRemote(this.ticket, this.userId).subscribe(
data => {
console.log("response recieved");
this.msg = "Ticket Successfully Generated";
this.open_Modal = true; // <------
},
error => {
this.open_Modal = false;
console.log("exception occured");
console.log(error);
// do nothing
}
)
}
在 html 中,将 ngIf 添加到主模态 div:
<div *ngIf="open_Modal" class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Modal Title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p class="text-center">Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-warning">Print</button>
<button type="submit" class="btn btn-primary" data-dismiss="modal" >Edit</button>
</div>
</div>
</div>
</div>
您还可以将主 div 包装到 ng-container
中,其中包含 ngIf,而不是在 div 中,以使代码更简洁:
<ng-container *ngIf="open_Modal">
<div class="modal fade" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Modal Title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p class="text-center">Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-warning">Print</button>
<button type="submit" class="btn btn-primary" data-dismiss="modal" >Edit</button>
</div>
</div>
</div>
</div>
</ng-container>
class 模态有 css 属性 dispaly:none 所以你必须添加显示:块 属性 来显示模态。
Html
添加 ngClass 指令以有条件地添加或删除 showModal css class
div class="modal fade" [ngClass]="{'showModal': openModal}" id="exampleModalLong" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
.......
</div>
课时
generateTicket(){
this._idservice.currentMessage.subscribe(message => this.userId = message)
this._service.createTicketFromRemote(this.ticket, this.userId).subscribe(
data => {
console.log("response recieved");
this.msg = "Ticket Successfully Generated";
this.openModal = true; // <------ Like Jacopo Sciampi said
},
用于关闭模态。
closeModal() {
this.openModal = false;
}
css
.showModal {
display:block;
}
您可以简单地使用此行从您的 .ts 文件打开模式
$('#exampleModalLong').modal('show');
另外不要忘记声明美元符号“$”,在 .ts 文件中导入后使用这一行
declare var $: any;