Angular 팝 업 모드 상자 의 두 가지 방식

블 로 그 를 시작 하기 전에 ngx-boottstrap-modal 을 설치 해 야 합 니 다.

npm install ngx-bootstrap-modal --save
그렇지 않 으 면 우리 의 모드 상자 효 과 는 네가 토 하고 싶 어 하 는 것 을 보기 어 려 울 것 이다.
1.팝 업 방식 1(이 방법 은https://github.com/cipchk/ngx-bootstrap-modal
1.alert 탄 상자
(1)demo 디 렉 터 리
--------app.component.ts
--------app.component.html
--------app.module.ts
디 테 일(폴 더)
------------detail.component.ts
------------detail.component.html
(2)demo 코드
app.module.ts 필요 한 BootstrapModalModule 과 ModalModule 을 가 져 와 서 등록 합 니 다.

//app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
//               
import { BootstrapModalModule } from 'ngx-bootstrap-modal';
import { ModalModule } from 'ngx-bootstrap/modal';
import { AppComponent } from './app.component';
import { DetailComponent } from './detail/detail.component';
@NgModule({
 declarations: [
 AppComponent,
 DetailComponent
 ],
 imports: [
 BrowserModule,
 BootstrapModalModule
 ],
 providers: [],
 entryComponents: [
 DetailComponent
 ],
 bootstrap: [AppComponent]
})
export class AppModule { }
app.coponent.html 모드 상 자 를 팝 업 할 수 있 는 단 추 를 만 듭 니 다.

<div class="container">
 <div class="row">
 <button type="button" class="btn btn-primary" (click)="showAlert()">alert   </button>
 </div> 
</div>
app.coponent.ts 이 단 추 를 만 드 는 동작 쇼 Alert()

import { Component } from '@angular/core';
import { DialogService } from "ngx-bootstrap-modal";
import { DetailComponent } from './detail/detail.component'
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})
export class AppComponent {
 title = 'app';
 constructor(public dialogService: DialogService) {
 } 
 showAlert() {
  this.dialogService.addDialog(DetailComponent, { title: 'Alert title!', message: 'Alert message!!!' });
 }
}
detail.com ponent.html 에서 alert 탄 상자 의 레이아웃 을 작성 합 니 다.

<div class="modal-dialog">
 <div class="modal-content">
  <div class="modal-header">
   <button type="button" class="close" (click)="close()" >×</button>
   <h4 class="modal-title">{{title}}</h4>
  </div>
  <div class="modal-body">
     alert  
  </div>
  <div class="modal-footer">
   <button type="button" class="btn btn-primary" (click)="close()">  </button>
   <button type="button" class="btn btn-default">  </button>
  </div>
 </div>
</div>
detail.coponent.ts 모드 상자 구성 요 소 를 만 듭 니 다.구성 요 소 를 만 든 다음 ngx-boottstrap-model 이 시작 을 유도 해 야 합 니 다.
이 구성 요소 에 대해 서 는 DialogComponent클래스 를 계승 해 야 합 니 다.두 개의 인 자 를 포함 합 니 다.
T 외부 에서 모드 상자 에 전 달 된 형식 입 니 다.
T1 모드 상자 반환 값 형식 입 니 다.
따라서 DialogService 는 DialogComponent 의 구조 함수 의 매개 변수 여야 합 니 다.

import { Component } from '@angular/core';
import { DialogComponent, DialogService } from 'ngx-bootstrap-modal';
export interface AlertModel {
 title: string;
 message: string;
}
@Component({
 selector: 'alert',
 templateUrl: './detail.component.html',
 styleUrls: ['./detail.component.css']
})
export class DetailComponent extends DialogComponent<AlertModel, null> implements AlertModel {
 title: string;
 message: string;
 constructor(dialogService: DialogService) {
 super(dialogService);
 }
}
2.confirm 탄창
(1)demo 디 렉 터 리
--------app.component.ts
--------app.component.html
--------app.module.ts
확인(폴 더)
------------confirm.component.ts
------------confirm.component.html
(2)demo 코드
app.module.ts 필요 한 Bootstrap ModalModule 과 ModalModule 을 가 져 와 서 다시 등록 합 니 다.이것 은 모두 alert 탄 상자 와 같 습 니 다.이것 은 모두 방법 1 의 팝 업 방식 이기 때 문 입 니 다.

//app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
//               
import { BootstrapModalModule } from 'ngx-bootstrap-modal';
import { ModalModule } from 'ngx-bootstrap/modal';
import { AppComponent } from './app.component';
import { DetailComponent } from './detail/detail.component';
@NgModule({
 declarations: [
 AppComponent,
 DetailComponent
 ],
 imports: [
 BrowserModule,
 BootstrapModalModule
 ],
 providers: [],
 entryComponents: [
 DetailComponent
 ],
 bootstrap: [AppComponent]
})
export class AppModule { }
app.coponent.html 모드 상 자 를 팝 업 할 수 있 는 단 추 를 만 듭 니 다.

<div class="container">
 <div class="row">
 <button type="button" class="btn btn-primary" (click)="showConfirm()">modal   </button>
 </div> 
</div>
app.coponent.ts 이 단 추 를 만 드 는 동작 쇼 Confirm()

import { Component } from '@angular/core';
import { DialogService } from "ngx-bootstrap-modal";
import { ConfirmComponent } from './confirm/confirm.component'
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})
export class AppComponent {
 title = 'app';
 constructor(public dialogService: DialogService,private modalService: BsModalService) {
 }
 showConfirm() {
  this.dialogService.addDialog(ConfirmComponent, {
   title: 'Confirmation',
   message: 'bla bla'
  })
   .subscribe((isConfirmed) => {
   });
 }
}
confirm.coponent.html confirm 탄 상자 의 레이아웃 작성

<div class="modal-dialog">
 <div class="modal-content">
  <div class="modal-header">
   <button type="button" class="close" (click)="close()" >×</button>
   <h4 class="modal-title">{{title}}</h4>
  </div>
  <div class="modal-body">
     confirm  
  </div>
  <div class="modal-footer">
   <button type="button" class="btn btn-primary" (click)="close()">  </button>
   <button type="button" class="btn btn-default">  </button>
  </div>
 </div>
</div>
confirm.component.ts 모드 상자 구성 요소 만 들 기

import { Component } from '@angular/core';
import { DialogComponent, DialogService } from 'ngx-bootstrap-modal';
export interface ConfirmModel {
 title:string;
 message:any;
}
@Component({
 selector: 'confirm',
 templateUrl: './confirm.component.html',
 styleUrls: ['./confirm.component.css']
})
export class ConfirmComponent extends DialogComponent<ConfirmModel, boolean> implements ConfirmModel {
 title: string;
 message: any;
 constructor(dialogService: DialogService) {
 super(dialogService);
 }
 confirm() {
 // on click on confirm button we set dialog result as true,
 // ten we can get dialog result from caller code
 this.close(true);
 }
 cancel() {
 this.close(false);
 }
}
3.탄 틀 내장
(1)demo 디 렉 터 리
--------app.component.ts
--------app.component.html
--------app.module.ts
(2)demo 코드
내 장 된 탄 상자 도 alert confirm prompt 세 가지 형 태 를 포함 하여 내 장 된 스타일 이 있 습 니 다.
app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BootstrapModalModule } from 'ngx-bootstrap-modal';
import { ModalModule } from 'ngx-bootstrap/modal';
import { AppComponent } from './app.component';
@NgModule({
 declarations: [
 AppComponent
 ],
 imports: [
 BrowserModule,
 BootstrapModalModule,
 ModalModule.forRoot()
 ],
 providers: [],
 bootstrap: [AppComponent]
})
export class AppModule { }
app.coponent.html 간단 합 니 다.버튼 하나만 누 르 세 요.

<div class="container">
 <div class="row">
 <button type="button" class="btn btn-default" (click)="show()">  </button>
 </div> 
</div>
app.coponent.ts 는 간단 합 니 다.구성 요소 의 레이아웃 도 쓰 지 않 고 아이콘 icon,크기 size 등 인 자 를 입력 합 니 다.

import { Component } from '@angular/core';
import { DialogService, BuiltInOptions } from "ngx-bootstrap-modal";
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})
export class AppComponent {
 title = 'app';
 constructor(public dialogService: DialogService) {
 }
 show(){
  this.dialogService.show(<BuiltInOptions>{
   content: '    ',
   icon: 'success',
   size: 'sm',
   showCancelButton: false
  })
 }
}
2.팝 업 방식 2(이 방법 은https://valor-software.com/ngx-bootstrap/#/modals
이전 방법 과 마찬가지 로 ngx-boottstrap-modal 을 설치 한 다음 bootstrap 스타일 시트 를 가 져 옵 니 다.
1.demo 디 렉 터 리
--------app.component.ts
--------app.component.html
--------app.module.ts
2.demo 코드
app.module.ts 가 해당 모듈 을 가 져 오고 등록 합 니 다.

//app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { ModalModule } from 'ngx-bootstrap/modal';
import { AppComponent } from './app.component';
@NgModule({
 declarations: [
 AppComponent
 ],
 imports: [
 BrowserModule,
 ModalModule.forRoot()
 ],
 providers: [],
 entryComponents: [
 ],
 bootstrap: [AppComponent]
})
export class AppModule { }
app.component.ts

import { Component,TemplateRef } from '@angular/core';
import { BsModalService } from 'ngx-bootstrap/modal';
import { BsModalRef } from 'ngx-bootstrap/modal/modal-options.class';
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})
export class AppComponent {
 title = 'app';
 public modalRef: BsModalRef;
 constructor(private modalService: BsModalService) {
 }
 showSecond(template: TemplateRef<any>){//        
  this.modalRef = this.modalService.show(template,{class: 'modal-lg'});//     BsModalService   show        
 };
}
app.component.html

<div class="container">
 <div class="row">
 <button type="button" class="btn btn-success" (click)="showSecond(Template)">       </button>
 </div> 
</div>
<!--          -->
<template #Template>
 <div class="modal-header tips-modal-header">
 <h4 class="modal-title pull-left">      </h4>
 <button type="button" class="close pull-right" aria-label="Close" (click)="modalRef.hide()">
  <span aria-hidden="true">×</span>
 </button>
 </div>
 <div class="modal-body tips-modal-body">
 <div class="tips-contain"><span>          </span></div>
 </div>
 <div class="modal-footer">
  <button type="button" class="btn btn-default" (click)="modalRef.hide()">  </button>
  <button type="button" class="btn btn-default" (click)="modalRef.hide()">  </button>
 </div>
</template>
최종 효과
우 리 는 위의 모든 탄 틀 을 함께 쓴 후에 효과 가 바로 이렇다.

총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 Angular 팝 업 모드 상자 의 두 가지 방식 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기