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 相关文章推荐
JavaScript 定义function的三种方式小结
Oct 16 Javascript
写出更好的JavaScript之undefined篇(上)
Nov 22 Javascript
jquery validate 自定义验证方法介绍 日期验证
Feb 27 Javascript
JavaScript中的getMilliseconds()方法使用详解
Jun 10 Javascript
JS实现的最简Table选项卡效果
Oct 14 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
ES6中的数组扩展方法
Aug 26 Javascript
Javascript中的async awai的用法
May 17 Javascript
微信小程序 按钮滑动的实现方法
Sep 27 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
Apr 17 Javascript
微信小程序渲染性能调优小结
Jul 30 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中过滤非法字符的具体实现
2013/10/29 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
Python分支结构(switch)操作简介
2018/01/17 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
python判断变量是否为列表的方法
2020/09/17 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
数控机械专业个人的自我评价
2014/01/02 职场文书
校园活动策划书范文
2014/01/10 职场文书
市场拓展计划书
2014/05/03 职场文书
综治工作汇报材料
2014/10/27 职场文书
2015年度企业工作总结
2015/05/21 职场文书
生死抉择观后感
2015/06/09 职场文书
职工培训工作总结
2015/08/10 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers