Angular 2使用路由自定义弹出组件toast操作示例

 更新时间:2019年05月10日 09:56:19   作者:zhy前端攻城狮  
这篇文章主要介绍了Angular 2使用路由自定义弹出组件toast操作,结合实例形式分析了Angular2使用路由操作弹出组件toast相关定义与使用技巧,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结

希望本文所述对大家AngularJS程序设计有所帮助。

相关文章

  • AngularJS基础学习笔记之控制器

    AngularJS基础学习笔记之控制器

    在AngularJS中,控制器是一个Javascript函数(类型/类),用来增强除了根作用域意外的作用域实例的。当你或者AngularJS本身通过<code>scope.$new</code>俩创建一个新的子作用域对象时,有一个选项能让你将它当做参数传递给控制器。
    2015-05-05
  • 浅谈对Angular中的生命周期钩子的理解

    浅谈对Angular中的生命周期钩子的理解

    本篇文章主要介绍了Angular中的生命周期钩子的理解,详细的介绍了生命周期钩子和主要的生命周期钩子,有兴趣的可以了解一下
    2017-07-07
  • 对angular 实时更新模板视图的方法$apply详解

    对angular 实时更新模板视图的方法$apply详解

    今天小编就为大家分享一篇对angular 实时更新模板视图的方法$apply详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 详解Angular如何正确的操作DOM

    详解Angular如何正确的操作DOM

    这篇文章主要介绍了详解Angular如何正确的操作DOM,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • AngularJS API之copy深拷贝详解及实例

    AngularJS API之copy深拷贝详解及实例

    这篇文章主要介绍了AngularJS API之copy深拷贝详解及实例的相关资料,需要的朋友可以参考下
    2016-09-09
  • 详解Angular6.0使用路由步骤(共7步)

    详解Angular6.0使用路由步骤(共7步)

    这篇文章主要介绍了详解Angular6.0使用路由步骤(共7步),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Angular.JS通过指令操作DOM的方法

    Angular.JS通过指令操作DOM的方法

    这篇文章主要给大家介绍了Angular.JS通过指令操作DOM的方法,文中给出了详细的介绍和示例代码,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • angular.js指令中transclude选项及ng-transclude指令详解

    angular.js指令中transclude选项及ng-transclude指令详解

    这篇文章主要研究一下如何使用ng-transclude指令,以及指令的transclude选项的相关资料,文中介绍的非常详细,并给出了完整的示例代码大家参考学习,需要的朋友们下面来一起看看吧。
    2017-05-05
  • AngularJS  ng-repeat遍历输出的用法

    AngularJS ng-repeat遍历输出的用法

    本篇文章主要介绍了AngularJS ng-repeat遍历输出的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Angular应用Bootstrap过程步骤逻辑详解

    Angular应用Bootstrap过程步骤逻辑详解

    这篇文章主要为大家介绍了Angular应用Bootstrap过程步骤逻辑详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论