AngularJS Toaster使用详解


Posted in Javascript onFebruary 24, 2017

AngularJS Toaster是一个 AngularJS 提示框.基于angular v1.2.6 及以上和angular-animate. (推荐使用 /1.2.8/angular-animate.js, 因为高版本会有怪异闪烁.)

引入脚本

<link href="https://cdnjs.cloudflare.com/ajax/libs/angularjs-toaster/0.4.16/toaster.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js" ></script>
<script src="https://code.angularjs.org/1.2.0/angular-animate.min.js" ></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angularjs-toaster/0.4.16/toaster.min.js"></script>

用法1:

添加指令

<toaster-container></toaster-container>

编写弹窗调用函数

angular.module('main', ['toaster', 'ngAnimate'])
 .controller('myController', function($scope, toaster) {
  $scope.pop = function(){
   toaster.pop('success', "title", "text");
  };
 });

调用

<div ng-controller="myController">
 <button ng-click="pop()">Show a Toaster</button>
</div>

添加关闭按钮

方式一: 全局的,为所有弹窗添加

<toaster-container toaster-options="{'close-button': true}"></toaster-container>

方式二:给close-btn 属性传递一个对象

<toaster-container toaster-options="{'close-button':{ 'toast-warning': true, 'toast-error': false } }"></toaster-container>

表示warning类型的弹窗显示关闭按钮,error类型的则不显示,不设置默认为false不显示

方式三 :在控制器里面设置:

toaster.pop({
   type: 'error',
   title: 'Title text',
   body: 'Body text',
   showCloseButton: true
   });

这种设置会覆盖页面的属性设置,不会污染其他的弹窗设置。

自定义关闭按钮的html

<toaster-container toaster-options="{'close-html':'<button>Close</button>', 'showCloseButton':true}"></toaster-container>

或者

toaster.pop({
  type: 'error',
  title: 'Title text',
  body: 'Body text',
  showCloseButton: true,
  closeHtml: '<button>Close</button>'
});

bodyOutputType(body的渲染类型) 可以接受 trustedHtml', ‘template', ‘templateWithData', ‘directive'四种类型
trustedHtml:使用此类型 toaster会调用$sce.trustAsHtml(toast.body)如果解析成功将会通过ng-bind-html指令被绑定到toaster,失败会抛出一个异常

作为模板处理

例如:

$scope.pop = function(){
  toaster.pop({
   type: 'error',
   title: 'Title text',
   body: 'cont.html',
   showCloseButton: true,
   bodyOutputType:'template',
   closeHtml: '<span>wqeqwe</span>'
  });
 };

作为指令来处理

toaster.pop({
 type: 'info',
 body: 'bind-unsafe-html',
 bodyOutputType: 'directive'
});
.directive('bindUnsafeHtml', [function () {
 return {
  template: "<span style='color:orange'>Orange directive text!</span>"
 };
}])

带数据的指令

toaster.pop({
  type: 'info',
  body: 'bind-name',
  bodyOutputType: 'directive',
  directiveData: { name: 'Bob' }
});
.directive('bindName', [function () {
  return {
   template: "<span style='color:orange'>Hi {{directiveData.name}}!</span>"
  };
}])
<toaster-container toaster-options="{'body-output-type': 'template'}"></toaster-container>

回调函数,当弹窗被移除的时候调用,可以用于链式调用弹窗

toaster.pop({
   title: 'A toast',
   body: 'with a callback',
   onHideCallback: function () { 
    toaster.pop({
     title: 'A toast',
     body: 'invoked as a callback'
    });
   }
});

设置弹窗位置

位置信息可以去css文件里面看需要什么位置,直接把属性值改成相应class就行,如果没有符合的就自己手动添加一个到toaster.css文件然后把名字赋值给属性就行

<toaster-container toaster-options="{'position-class': 'toast-top-full-width'}"></toaster-container>
<toaster-container toaster-options="{'position-class': 'toast-top-center', 'close-button':true}"></toaster-container>

以上所述是小编给大家介绍的AngularJS Toaster使用详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Sample script that deletes a SQL Server database
Jun 16 Javascript
js setTimeout opener的用法示例详解
Oct 23 Javascript
一个js控制的导航菜单实例代码
Dec 03 Javascript
JS运动基础框架实例分析
Mar 03 Javascript
javascript字符串与数组转换汇总
May 26 Javascript
js省市联动效果完整实例代码
Dec 09 Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 Javascript
javascript实现文字无缝滚动
Dec 27 Javascript
Canvas实现动态的雪花效果
Feb 13 Javascript
基于Bootstrap table组件实现多层表头的实例代码
Sep 07 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
Jul 13 Javascript
Vue和Flask通信的实现
May 19 Vue.js
js获取隐藏元素的宽高
Feb 24 #Javascript
js css自定义分页效果
Feb 24 #Javascript
jQuery快速高效制作网页交互特效
Feb 24 #Javascript
Angular.js自定义指令学习笔记实例
Feb 24 #Javascript
利用原生JS与jQuery实现数字线性变化的动画
Feb 24 #Javascript
JavaScript和jQuery制作光棒效果
Feb 24 #Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
Feb 24 #Javascript
You might like
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
PHP编写简单的App接口
2016/08/28 PHP
详解json在php中的应用
2018/09/30 PHP
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
python实现数据图表
2017/07/29 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
Django 框架模型操作入门教程
2019/11/05 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
营业员演讲稿
2013/12/30 职场文书
实验教师岗位职责
2014/02/13 职场文书
警校毕业生自我评价
2014/04/06 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
小学推普周活动总结
2015/05/07 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS