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 相关文章推荐
JS getStyle获取最终样式函数代码
Apr 01 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
Jquery注册事件实现方法
May 18 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
Jun 03 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
May 24 Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 Javascript
基于IView中on-change属性的使用详解
Mar 15 Javascript
layui 给数据表格加序号的方法
Aug 20 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
Oct 10 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
Oct 10 Javascript
微信小程序利用云函数获取手机号码
Dec 17 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数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
layer实现弹出层自动调节位置
2019/09/05 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
python获取mp3文件信息的方法
2015/06/15 Python
python二分查找算法的递归实现方法
2016/05/12 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
什么是类的返射机制
2016/02/06 面试题
linux面试题参考答案(4)
2013/01/28 面试题
门卫人员岗位职责
2013/12/24 职场文书
物理教师自荐信范文
2013/12/28 职场文书
顶碗少年教学反思
2014/02/21 职场文书
入股协议书
2014/04/14 职场文书
ktv好的活动方案
2014/08/17 职场文书
初中语文教学随笔
2015/08/15 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记