Skip to content

Instantly share code, notes, and snippets.

Forked from seyDoggy/SomeCtrl.js
Created September 20, 2017 03:52
What would you like to do?
My version of the AngularJS ui-bootstrap alert service as derived from here: No $rootScopes were harmed in the making of this code.
(function () {
'use strict';
.factory('alertService', alertService);
function alertService() {
var service = {
add: add,
closeAlert: closeAlert,
closeAlertIdx: closeAlertIdx,
clear: clear,
get: get
alerts = [];
return service;
function add(type, msg) {
return alerts.push({
type: type,
msg: msg,
close: function() {
return closeAlert(this);
function closeAlert(alert) {
return closeAlertIdx(alerts.indexOf(alert));
function closeAlertIdx(index) {
return alerts.splice(index, 1);
function clear(){
alerts = [];
function get() {
return alerts;
(function () {
'use strict';
.controller('BodyCtrl', BodyCtrl);
BodyCtrl.$inject = ['$scope', 'alertService'];
function BodyCtrl($scope, alertService) {
$scope.alerts = alertService.get();
<!doctype html>
<html ng-app="myApp" class="no-js">
<link rel="stylesheet" href="styles/main.css">
<body ng-controller="BodyCtrl">
<div class="main container">
<alert ng-repeat="alert in alerts" type="{{alert.type}}" close="alert.close()">{{ alert.msg }}</alert>
<div ng-view=""></div>
<script src="angular.js"></script>
<script src="ui-bootstrap.js"></script>
<script src="scripts/app.js"></script>
<script src="scripts/services/alertservice.js"></script>
(function () {
'use strict';
.controller('SomeCtrl', SomeCtrl);
SomeCtrl.$inject = ['$scope', '$http', ' alertService'];
function SomeCtrl($scope, $http, alertService) {
$http.put('http://some.url/user/44', {
firstName: 'John',
lastName: 'Doe'
function updateUserSuccess(response) {
alertService.add('success', 'User was updated.');
function updateUserFail(reason) {
alertService.add('warning', 'User could not be updated. ' + reason);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment