如何通过Angular 2路由实现自定义toast组件的弹出示例?

更新于
2026-10-02 10:36:35
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计538个文字,预计阅读时间需要3分钟。

Angular 2 实例讲解:使用自定义路由组件弹出 toast 操作。

分享给开发者参考,包括以下内容:- 原理- 使用 Angular 2 的命名路由插件- 一个用于展示 app 正常使用的组件- 一个用于展示弹出框的组件

本文实例讲述了Angular 2使用路由自定义弹出组件toast操作。分享给大家供大家参考,具体如下:

原理:

使用Angular2的命名路由插座,一个用来显示app正常的使用,一个用来显示弹出框,

<router-outlet name='apps'></router-outlet> <router-outlet name='popup'></router-outlet>

浏览器的导航栏中则这样显示

127.0.0.1:4200/(popup:toast//apps:login)

路由配置

const rootRoute: Routes = [ { path: 'lists', component: Lists, outlet: 'apps', children: [ ... ] }, { path: 'toast', component: Toast, outlet: 'popup', }, ... ];

toast内容

<div class="box"> <div class="toast-box"> <p class="toast-title">提示</p> <div class="toast-content"> <ng-container *ngIf="toastParams.img"> <img src="{{toastParams.img}}" class="toast-content-img"> </ng-container> <ng-container *ngIf="toastParams.title"> <p class="toast-content-p">{{toastParams.title}}</p> </ng-container> </div> </div> </div>

ts

在ngOninit函数中获取显示的参数即可

this.toastParams = this.popupSVC.getToastParams();

创建用来跳转至popup路由的服务,例如popup.service

import { Injectable } from '@angular/core'; import { Router } from '@angular/router'; @Injectable() export class PopupService { private toastParams; private loadingParams; constructor( private router: Router ) { } toast(_params) { this.toastParams = _params; let _duration; if (_params.duration) { _duration = _params.duration; } else { _duration = 500; } const _outlets = { 'popup': 'toast' }; this.router.navigate([{ outlets: _outlets }]); setTimeout(() => { const _outlets2 = { 'popup': null }; this.router.navigate([{ outlets: _outlets2 }]); }, _duration); } getToastParams() { return this.toastParams; } }

使用:

一、在app.module.ts中将服务导进来,注册

import { PopupService } from './svc/popup.service'; @NgModule({ imports: [ ... ], declarations: [ ... ], providers: [ PopupService, ... ], bootstrap: [AppComponent] })

二、在使用的test.ts中导入

import { PangooService } from './svc/pangoo.service'; constructor( private popupSVC: PopupService, ) { }

三、在html中定义一个函数

<div (click)="test()"></div>

四、调用

test(){ this.popupSVC.toast({ img: '弹出图片地址!', title: '弹出消息内容!', duration: 2000, //toast多久后消失,默认为500ms }); }

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。

本文共计538个文字,预计阅读时间需要3分钟。

Angular 2 实例讲解:使用自定义路由组件弹出 toast 操作。

分享给开发者参考,包括以下内容:- 原理- 使用 Angular 2 的命名路由插件- 一个用于展示 app 正常使用的组件- 一个用于展示弹出框的组件

本文实例讲述了Angular 2使用路由自定义弹出组件toast操作。分享给大家供大家参考,具体如下:

原理:

使用Angular2的命名路由插座,一个用来显示app正常的使用,一个用来显示弹出框,

<router-outlet name='apps'></router-outlet> <router-outlet name='popup'></router-outlet>

浏览器的导航栏中则这样显示

127.0.0.1:4200/(popup:toast//apps:login)

路由配置

const rootRoute: Routes = [ { path: 'lists', component: Lists, outlet: 'apps', children: [ ... ] }, { path: 'toast', component: Toast, outlet: 'popup', }, ... ];

toast内容

<div class="box"> <div class="toast-box"> <p class="toast-title">提示</p> <div class="toast-content"> <ng-container *ngIf="toastParams.img"> <img src="{{toastParams.img}}" class="toast-content-img"> </ng-container> <ng-container *ngIf="toastParams.title"> <p class="toast-content-p">{{toastParams.title}}</p> </ng-container> </div> </div> </div>

ts

在ngOninit函数中获取显示的参数即可

this.toastParams = this.popupSVC.getToastParams();

创建用来跳转至popup路由的服务,例如popup.service

import { Injectable } from '@angular/core'; import { Router } from '@angular/router'; @Injectable() export class PopupService { private toastParams; private loadingParams; constructor( private router: Router ) { } toast(_params) { this.toastParams = _params; let _duration; if (_params.duration) { _duration = _params.duration; } else { _duration = 500; } const _outlets = { 'popup': 'toast' }; this.router.navigate([{ outlets: _outlets }]); setTimeout(() => { const _outlets2 = { 'popup': null }; this.router.navigate([{ outlets: _outlets2 }]); }, _duration); } getToastParams() { return this.toastParams; } }

使用:

一、在app.module.ts中将服务导进来,注册

import { PopupService } from './svc/popup.service'; @NgModule({ imports: [ ... ], declarations: [ ... ], providers: [ PopupService, ... ], bootstrap: [AppComponent] })

二、在使用的test.ts中导入

import { PangooService } from './svc/pangoo.service'; constructor( private popupSVC: PopupService, ) { }

三、在html中定义一个函数

<div (click)="test()"></div>

四、调用

test(){ this.popupSVC.toast({ img: '弹出图片地址!', title: '弹出消息内容!', duration: 2000, //toast多久后消失,默认为500ms }); }

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。