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 相关文章推荐
JavaScript 垃圾回收机制分析
Oct 10 Javascript
bootstrap data与jquery .data
Jul 07 Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
jQuery中的on与bind绑定事件区别实例详解
Feb 28 Javascript
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
Vue2.x和Vue3.x的双向绑定原理详解
Nov 05 Javascript
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
vue3如何优雅的实现移动端登录注册模块
Mar 29 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
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
PHP解析RSS的方法
2015/03/05 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
详解NodeJs开发微信公众号
2018/05/25 NodeJs
layui使用label标签的方法
2019/09/14 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python中使用HTMLParser解析html实例
2015/02/08 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
接口中的方法可以是abstract的吗
2015/07/23 面试题
毕业生求职自荐书范文
2014/03/27 职场文书
终止劳动合同协议书
2014/04/14 职场文书
挂职学习心得体会
2014/09/09 职场文书
工地材料员岗位职责
2015/04/11 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
作文之亲情600字
2019/09/23 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL