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 相关文章推荐
解放web程序员的输入验证
Oct 06 Javascript
jQueryUI如何自定义组件实现代码
Nov 14 Javascript
javascript学习之闭包分析
Dec 02 Javascript
js不完美解决click和dblclick事件冲突问题
Jul 16 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
Sep 04 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
Jul 27 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 Javascript
vue项目中引入vue-datepicker插件的详解
May 14 Javascript
纯JS实现五子棋游戏
May 28 Javascript
javascript前端和后台进行数据交互方法示例
Aug 07 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 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
php zend 相对路径问题
2009/01/12 PHP
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
jquery实现excel导出的方法
2013/04/04 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
Python实现把xml或xsl转换为html格式
2015/04/08 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
python 实现生成均匀分布的点
2019/12/05 Python
python 实现字符串下标的输出功能
2020/02/13 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
Python新手学习装饰器
2020/06/04 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
西安交大自主招生自荐信
2014/01/27 职场文书
德语专业求职信
2014/03/12 职场文书
分层教学实施方案
2014/03/19 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
2014年团总支工作总结
2014/11/21 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
2019财务转正述职报告
2019/06/27 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
了解Redis常见应用场景
2021/06/23 Redis
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android