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实现划词标记+划词搜索功能
Mar 06 Javascript
基于jQuery的左右滚动实现代码
Dec 03 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 Javascript
JavaScript小技巧整理
Dec 30 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
详解JavaScript中return的用法
May 08 Javascript
layui前段框架日期控件使用方法详解
May 19 Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 Javascript
js实现淘宝首页的banner栏效果
Nov 26 Javascript
vue中的过滤器及其时间格式化问题
Apr 09 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的ajax框架xajax入门与试用介绍
2010/12/19 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
微信小程序版翻牌小游戏
2018/01/26 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
Python functools模块学习总结
2015/05/09 Python
python append、extend与insert的区别
2016/10/13 Python
Django内容增加富文本功能的实例
2017/10/17 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
Python 如何对文件目录操作
2020/07/10 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
护理自荐信
2013/10/22 职场文书
服装公司总经理岗位职责
2013/11/30 职场文书
银行演讲稿范文
2014/01/03 职场文书
毕业生自我鉴定实例
2014/01/21 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
医院病假条怎么写
2015/08/17 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python