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 相关文章推荐
jQuery 对象中的类数组操作
Apr 27 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
Mar 10 Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
Jul 04 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
原生JS实现图片轮播切换效果
Dec 15 Javascript
详解react使用react-bootstrap当轮子造车
Aug 15 Javascript
swiper自定义分页器使用方法详解
Sep 14 Javascript
Vue加载json文件的方法简单示例
Jan 28 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
May 09 Javascript
js实现淘宝浏览商品放大镜功能
Oct 28 Javascript
Vertx基于EventBus发送接受自定义对象
Nov 16 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
实例讲解Python中函数的调用与定义
2016/03/14 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
品管员岗位职责
2013/11/10 职场文书
自荐书范文
2013/12/08 职场文书
采购经理岗位职责
2014/02/16 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
卖车协议书范例
2014/09/16 职场文书
会计专业自荐信范文
2015/03/05 职场文书
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫