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 相关文章推荐
用js实现控件的隐藏及style.visibility的使用
Jun 14 Javascript
jquery动态更换设置背景图的方法
Mar 25 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
node.js中的fs.close方法使用说明
Dec 17 Javascript
JavaScript实现斗地主游戏的思路
Feb 29 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
微信小程序中时间戳和日期的相互转换问题
Jul 09 Javascript
Angular ElementRef简介及其使用
Oct 01 Javascript
js判断一个对象是数组(函数)的方法实例
Dec 19 Javascript
vue渲染方式render和template的区别
Jun 05 Javascript
解决vue-cli输入命令vue ui没效果的问题
Nov 17 Javascript
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
PHP教程 预定义变量
2009/10/23 PHP
php 注释规范
2012/03/29 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
Python中的多重装饰器
2015/04/11 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
python开发之for循环操作实例详解
2015/11/12 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
运动会方队口号
2014/06/07 职场文书
主题党日活动总结
2014/07/08 职场文书
工商管理本科生求职信
2014/07/13 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
丧事答谢词
2015/01/05 职场文书
工地材料员岗位职责
2015/04/11 职场文书
图书馆义工感想
2015/08/07 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
Redis 限流器
2022/05/15 Redis