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 渐变下拉菜单
Dec 15 Javascript
跟着JQuery API学Jquery 之三 筛选
Apr 09 Javascript
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
JavaScript中的标签语句用法分析
Feb 10 Javascript
jQuery对象初始化的传参方式
Feb 26 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
jquery使用animate方法实现控制元素移动
Mar 27 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
H5手机端多文件上传预览插件
Apr 21 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
Dec 26 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
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将时间差转换为字符串提示
2011/09/07 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
wxpython实现图书管理系统
2018/03/12 Python
Python3实现购物车功能
2018/04/18 Python
Django REST framework内置路由用法
2019/07/26 Python
浅析Django中关于session的使用
2019/12/30 Python
用python批量移动文件
2021/01/14 Python
学徒工职责
2014/03/06 职场文书
小学五年级学生评语
2014/04/22 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
党员剖析材料范文
2014/12/18 职场文书
毕业生党员个人总结
2015/02/14 职场文书
导游词之吉林花园山
2019/10/17 职场文书