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 相关文章推荐
一些常用且实用的原生JavaScript函数
Sep 08 Javascript
关于javascript中的typeof和instanceof介绍
Dec 04 Javascript
JavaScript实现节点的删除与序号重建实例
Aug 05 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
Aug 25 Javascript
AngularJS constant和value区别详解
Feb 28 Javascript
JS获取并处理php数组的方法实例分析
Sep 04 Javascript
功能完善的小程序日历组件的实现
Mar 31 Javascript
微信小程序实现点击生成随机验证码
Sep 09 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中删除变量时unset()和null的区别分析
2011/01/27 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
JavaScript错误处理操作实例详解
2019/01/04 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
python实现目录树生成示例
2014/03/28 Python
Python连接DB2数据库
2016/08/27 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
python中的tcp示例详解
2018/12/09 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
酒店实习个人鉴定
2013/12/07 职场文书
物理学专业求职信
2014/07/04 职场文书
企业党建工作总结2015
2015/05/26 职场文书
golang中的空接口使用详解
2021/03/30 Python
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers