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 相关文章推荐
JQuery 文本框使用小结
May 22 Javascript
JavaScript在XHTML中的用法详解
Apr 11 Javascript
javascript 树形导航菜单实例代码
Aug 13 Javascript
JavaScript window.location对象
Nov 14 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
May 09 Javascript
Vue filters过滤器的使用方法
Jul 14 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
浏览器调试动态js脚本的方法(图解)
Jan 19 Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 Javascript
详解vue移动端项目的适配(以mint-ui为例)
Aug 17 Javascript
js删除数组中某几项的方法总结
Jan 16 Javascript
利用JavaScript为句子加标题的3种方法示例
Jan 05 Javascript
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
自己做矿石收音机
2021/03/02 无线电
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
十条建议帮你提高Python编程效率
2016/02/16 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
Python requests模块cookie实例解析
2020/04/14 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
法律七进实施方案
2014/03/15 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
八一建军节慰问信
2015/02/14 职场文书
新郎接新娘保证书
2015/05/08 职场文书
学生犯错保证书
2015/05/09 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
Python使用pyecharts控件绘制图表
2022/06/05 Python