Angular-UI Bootstrap组件实现警报功能


Posted in Javascript onJuly 16, 2018

Angular-UI Bootstrap提供了许多组件,从流行的的Bootstrap项目移植到Angular 指令(显著的减少了代码量)。如果你计划在Angular应用中使用Bootstrap组件,我建议细心检查。话虽如此,直接使用Bootstrap,应该也是可以工作的。

Angular controller可以共享service的代码。警报就是把service代码共享到controller的很好用例之一。

Angular-UI Bootstrap文档提供了下面的例子:

view

<div ng-controller="AlertDemoCtrl">
 <alert ng-repeat="alert in alerts" type="alert.type" close="closeAlert($index)">{{alert.msg}}</alert>
 <button class='btn' ng-click="addAlert()">Add Alert</button>
</div>

controller

function AlertDemoCtrl($scope) {
 $scope.alerts = [
  { type: 'error', msg: 'Oh snap! Change a few things up and try submitting again.' }, 
  { type: 'success', msg: 'Well done! You successfully read this important alert message.' }
 ];

 $scope.addAlert = function() {
  $scope.alerts.push({msg: "Another alert!"});
 };

 $scope.closeAlert = function(index) {
  $scope.alerts.splice(index, 1);
 };
}

鉴于我们要在app中的不同的控制器中创建警报,并且跨控制器的代码不好引用,我们将要把它移到service中。

alertService

'use strict';
/* services.js */
// don't forget to declare this service module as a dependency in your main app constructor!
var appServices = angular.module('appApp.services', []);
appServices.factory('alertService', function($rootScope) {
  var alertService = {};
  // create an array of alerts available globally
  $rootScope.alerts = [];
  alertService.add = function(type, msg) {
   $rootScope.alerts.push({'type': type, 'msg': msg});
  };
  alertService.closeAlert = function(index) {
   $rootScope.alerts.splice(index, 1);
  };
  return alertService;
 });

view

<div>
 <alert ng-repeat="alert in alerts" type="alert.type" close="closeAlert($index)">{{ alert.msg }}</alert>
</div>

最后,我们需要将alertService's中的closeAlert()方法绑定到$globalScope。

controller

function RootCtrl($rootScope, $location, alertService) {
 $rootScope.changeView = function(view) {
  $location.path(view);
 }
 // root binding for alertService
 $rootScope.closeAlert = alertService.closeAlert; 
}
RootCtrl.$inject = ['$scope', '$location', 'alertService'];

我不完全赞同这种全局绑定,我希望的是直接从警报指令中的close data属性中调用service方法,我不清楚为什么不这样来实现。

现在创建一个警报只需要从你的任何一个控制器中调用alertService.add()方法。

function ArbitraryCtrl($scope, alertService) {
 alertService.add("warning", "This is a warning.");
 alertService.add("error", "This is an error!");
}

总结

以上所述是小编给大家介绍的Angular-UI Bootstrap组件实现警报功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript 原型和继承(Prototypes and Inheritance)
Apr 01 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
Dec 17 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
Nov 27 Javascript
Javascript玩转继承(一)
May 08 Javascript
如何防止回车(enter)键提交表单
May 11 Javascript
Javascript基础知识(三)BOM,DOM总结
Sep 29 Javascript
node.js中的fs.write方法使用说明
Dec 15 Javascript
javascript实现获取字符串hash值
May 10 Javascript
jQuery遮罩层实例讲解
May 11 jQuery
在angularJs中进行数据遍历的2种方法
Oct 08 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
javascript使用canvas实现饼状图效果
Sep 08 Javascript
JS在if中的强制类型转换方式
Jul 15 #Javascript
微信小程序form表单组件示例代码
Jul 15 #Javascript
微信小程序仿朋友圈发布动态功能
Jul 15 #Javascript
Bootstrap Table中的多选框删除功能
Jul 15 #Javascript
详解JavaScript 中 if / if...else...替换方式
Jul 15 #Javascript
简述JS控制台的使用
Jul 15 #Javascript
简述JS浏览器的三种弹窗
Jul 15 #Javascript
You might like
杏林同学录(五)
2006/10/09 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
ie focus bug 解决方法
2009/09/03 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
python输出指定月份日历的方法
2015/04/23 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
虚拟机下载python是否需要联网
2020/07/27 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
中小学生学籍证明
2014/10/25 职场文书
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技