AngularJS Toaster

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>

时间: 2024-10-07 11:39:55

AngularJS Toaster的相关文章

toaster

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&quo

angularJS socket

项目Controller文件中加载Service层socket.js.页面进入该controller所在页面时连接socket(也可一进入项目就连接,看需求),细节还需继续优化,写下来以防忘了~ Service层:socket.js /************************************************************* ******************Angular Websocket Service****************** ********

angularJs中关于ng-class的三种使用方式说明

在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子. 而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一种:通过数据的双向绑定(不推荐) 第二种:通过对象数组 第三种:通过key/value 下面简单说下这三种: 第一种:通过数据的双向绑定 实现方式: function changeClass(){   $scope.className = "change2"; } <div clas

Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例

server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); // 创建服务器,创建HTTP服务器要调用http.createServer()函数,它只有一个参数,是个回调函数,服务器每次收到http请求后都会调用这个回调函数.服务器每收到一条http请求,都会用新的request和response对象触发请求函数. var server=http.createS

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

一招制敌 - 玩转 AngularJS 指令的 Scope (作用域),讲得特别好

学习了AngularJS挺长时间,最近再次回首看看指令这部分的时候,觉得比自己刚开始学习的时候理解的更加深入了,尤其是指令的作用域这部分. 步入正题: 每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),还是创建一个新的自己的作用域,当然AngularJS为我们指令的scope参数提供了三种选择,分别是:false,true,{}:默认情况下是false. scope = false 首先我们来看

前端angularJS利用directive实现移动端自定义软键盘的方法

最近公司项目的需求上要求我们iPad项目上一些需要输入数字的地方用我们自定义的软键盘而不是移动端设备自带的键盘,刚接到需求有点懵,因为之前没有做过,后来理了一下思路发现这东西也就那样.先看一下实现之后的效果: 实现的效果就是当点击页面中需要弹出软键盘的时候软键盘弹出,浮在页面的中间,和模态框一样的效果,可以在软键盘中输入任何数字,附带的功能有小数点.退格.清空.确定等功能.当在键盘上点击数字的时候页面中的表单中实时的添加对应的数字,上图中可以看到. 产品经理那边给的原因是iPad屏幕本来就小,如

AngularJs自定义过滤器filter

AngularJs自带有很多过滤器,现在Insus.NET演示一个自定义的过滤器,如实现一个数据的平方. 本演示是在ASP.NET MVC环境中进行. 创建一个app: 创建一个控制器: 接下来是重点,创建一个过滤器,例子中的过滤器是实现一个数值的平方. 以上的所指的App,控制器和过滤器均是依Angularjs而言. 下面是ASP.NET MVC的视图,实现数据过滤: 程序运行结果:

AngularJS:directive自定义的指令

除了 AngularJS 内置的指令外,我们还可以创建自定义指令. 你可以使用 .directive 函数来添加自定义的指令. 要调用自定义指令,HTML 元素上需要添加自定义指令名. 使用驼峰法来命名一个指令, runoobDirective, 但在使用它时需要以 - 分割, runoob-directive: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script