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 相关文章推荐
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
Jan 22 Javascript
JavaScript 学习技巧
Feb 17 Javascript
this和执行上下文实现代码
Jul 01 Javascript
editable.js 基于jquery的表格的编辑插件
Oct 24 Javascript
javascript中简单的进制转换代码实例
Oct 26 Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
Mar 15 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 Javascript
JavaScript中的对象继承关系
Aug 01 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
May 19 jQuery
JavaScript注册时密码强度校验代码
Jun 30 Javascript
Vue实现图书管理小案例
Dec 03 Vue.js
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中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
js实现随机抽奖
2020/03/19 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
Python模块学习 re 正则表达式
2011/05/19 Python
Python实现新浪博客备份的方法
2016/04/27 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
Python实现的爬虫功能代码
2017/06/24 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
python实现百度语音识别api
2018/04/10 Python
python代码过长的换行方法
2018/07/19 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
Django视图类型总结
2021/02/17 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
一份创业计划书范文
2014/02/08 职场文书
个人主要事迹材料
2014/08/26 职场文书
语文教师求职信范文
2015/03/20 职场文书
个人业务学习心得体会
2016/01/25 职场文书
python实现剪贴板的操作
2021/07/01 Python
Python PIL按比例裁剪图片
2022/05/11 Python