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函数的重载
Sep 22 Javascript
javascript 函数调用的对象和方法
Jul 01 Javascript
js css后面所带参数含义介绍
Aug 18 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
jQuery异步获取json数据方法汇总
Dec 22 Javascript
js事件监听器用法实例详解
Jun 01 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
vue分页器组件编写方法详解
Jun 28 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
Sep 25 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
Apr 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
PHP中Array相关函数简介
2016/07/03 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
python的迭代器与生成器实例详解
2014/07/16 Python
spyder常用快捷键(分享)
2017/07/19 Python
python中学习K-Means和图片压缩
2017/11/20 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
python excel转换csv代码实例
2019/08/26 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
三年级小学生评语
2014/04/22 职场文书
查摆剖析材料范文
2014/09/30 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
社区务虚会发言材料
2014/10/20 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
企业2014年度工作总结
2014/12/10 职场文书
后备干部推荐材料
2014/12/24 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书