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 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
Js获取下拉框选定项的值和文本的实现代码
Feb 26 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
Mar 13 Javascript
举例说明如何为JavaScript的方法参数设置默认值
Nov 17 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 Javascript
JS实现太极旋转思路分析
Dec 09 Javascript
在Js页面通过POST传递参数跳转到新页面详解
Aug 25 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
vue项目开发中setTimeout等定时器的管理问题
Sep 13 Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
浅析PHP开发规范
2018/02/05 PHP
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
几种实用的pythonic语法实例代码
2018/02/24 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
婚纱摄影师求职信范文
2014/04/17 职场文书
机械操作工岗位职责
2014/08/08 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL
从原生JavaScript到React深入理解
2022/07/23 Javascript