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控制阿拉伯数字转为中文大写示例代码
Sep 04 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
Sep 10 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
jquery实现搜索框常见效果的方法
Jan 22 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
jQuery each函数源码分析
May 25 Javascript
vue-cli如何快速构建vue项目
Apr 26 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 Javascript
js中console在一行内打印字符串和对象的方法
Sep 10 Javascript
JavaScript利用键盘码控制div移动
Mar 19 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
Jun 22 Javascript
JavaScript原生数组函数实例汇总
Oct 14 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/05/07 PHP
php中adodbzip类实例
2014/12/08 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
面试常见的js算法题
2017/03/23 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
python2.7实现邮件发送功能
2018/12/12 Python
pybind11在Windows下的使用教程
2019/07/04 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
python tkinter实现屏保程序
2019/07/30 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
几道PHP面试题
2013/04/14 面试题
上班上网检讨书
2014/01/29 职场文书
房屋转让协议书范本
2014/04/11 职场文书
成绩单家长意见
2015/06/03 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python