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 checkbox全选、取消全选、删除功能代码
Dec 19 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
May 27 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 Javascript
详解jQuery选择器
Dec 21 Javascript
angularjs实现分页和搜索功能
Jan 03 Javascript
Vue中的slot使用插槽分发内容的方法
Mar 01 Javascript
微信小程序实现点赞、取消点赞功能
Nov 02 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
Apr 30 Javascript
vue+element 模态框表格形式的可编辑表单实现
Jun 07 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
Mar 02 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中的MVC模式运用技巧
2007/05/03 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
javascript 写类方式之十
2009/07/05 Javascript
Prototype String对象 学习
2009/07/19 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
Python中functools模块的常用函数解析
2016/06/30 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Python reduce()函数的用法小结
2017/11/15 Python
pyqt5实现登录界面的模板
2020/05/30 Python
详解python运行三种方式
2019/05/13 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
员工工作表扬信范文
2014/01/13 职场文书
综合实践教学反思
2014/01/31 职场文书
清扬洗发水广告词
2014/03/14 职场文书
关于安全的演讲稿
2014/05/09 职场文书
文化产业实施方案
2014/06/07 职场文书
聘用合同范本
2015/09/21 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android