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 相关文章推荐
6个DIV 135或246间隔一秒轮番显示效果
Jul 24 Javascript
面向对象设计模式的核心法则
Nov 10 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
Nov 17 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
Dec 04 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
Mar 18 Javascript
Angular的事件和表单详解
Dec 26 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 Javascript
JavaScript生成简单等差数列
Nov 28 Javascript
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
axios异步提交表单数据的几种方法
Aug 11 Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
Nov 03 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
Python入门篇之文件
2014/10/20 Python
Python 递归函数详解及实例
2016/12/27 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
Python中格式化字符串的四种实现
2020/05/26 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
《画》教学反思
2014/04/14 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
求职信怎么写
2014/05/23 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书