Angular 2使用路由自定义弹出组件toast操作示例


Posted in Javascript onMay 10, 2019

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

原理:

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

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

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

http://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程序设计有所帮助。

Javascript 相关文章推荐
使用IE的地址栏来辅助调试Web页脚本
Mar 08 Javascript
Javascript入门学习资料收集整理篇
Jul 06 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
Dec 04 Javascript
文本框回车提交与禁止提交示例
Sep 27 Javascript
document.forms[].submit()使用介绍
Feb 19 Javascript
js获取当前时间显示在页面上并每秒刷新
Dec 24 Javascript
jquery实现textarea 高度自适应
Mar 11 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
Sep 21 Javascript
详解vue-cli 脚手架项目-package.json
Jul 04 Javascript
vue组件父与子通信详解(一)
Nov 07 Javascript
微信小程序发布新版本时自动提示用户更新的方法
Jun 07 Javascript
Jquery Datatables的使用详解
Jan 30 jQuery
Angular2使用SVG自定义图表(条形图、折线图)组件示例
May 10 #Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
May 10 #Javascript
Vue项目中配置pug解析支持
May 10 #Javascript
Angular2实现的秒表及改良版示例
May 10 #Javascript
node中IO以及定时器优先级详解
May 10 #Javascript
使用Node.js写一个代码生成器的方法步骤
May 10 #Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 #jQuery
You might like
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
PHP echo,print,printf,sprintf函数之间的区别与用法详解
2013/11/27 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
python 多个参数不为空校验方法
2019/02/14 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
python 随机森林算法及其优化详解
2019/07/11 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
python 实现图片裁剪小工具
2021/02/02 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
HTML5拖拽文件上传的示例代码
2021/03/04 HTML / CSS
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
入党自我鉴定范文
2013/10/04 职场文书
教师网络培训感言
2014/03/09 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
英文慰问信
2015/02/14 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
毕业典礼致辞
2015/07/29 职场文书