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函数
Oct 16 Javascript
javaScript parseInt字符转化为数字函数使用小结
Nov 05 Javascript
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
javascript 面向对象封装与继承
Nov 27 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
Jan 12 Javascript
vue学习笔记之v-if和v-show的区别
Sep 20 Javascript
javascript实现电脑和手机版样式切换
Nov 10 Javascript
解析vue路由异步组件和懒加载案例
Jun 08 Javascript
jQuery实现动态添加和删除input框代码实例
Mar 29 jQuery
从0到1搭建Element的后台框架的方法步骤
Apr 10 Javascript
详解VSCode配置启动Vue项目
May 14 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-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
Bootstrap表单布局样式代码
2016/05/31 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
使用python实现接口的方法
2017/07/07 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
秋季红领巾广播稿
2014/01/27 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
付款委托书范本
2014/04/04 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
综合测评个人总结
2015/03/03 职场文书
护士求职自荐信
2015/03/25 职场文书
2016七夕情人节感言
2015/12/09 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python