<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@*" data-semver="1.2.7" src="http://code.angularjs.org/1.2.7/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div data-ng-app = "pen">
<div class="container" data-ng-controller = "MainCtrl">
<h1>{{heading}}</h1>
<p>{{message}}</p>
<p>
<a data-ng-click = "loadText()" href = ""> Refresh </a>
</p>
</div>
</div>
</body>
</html>
// Code goes here
app = angular.module("pen", []);
app.controller("MainCtrl", function($scope, BaconServe){
$scope.heading = "Hola!";
$scope.loadText = function(){
$scope.message = "Loading...";
BaconServe.randomText().then(function(data){
$scope.message = data[0]
});
}
$scope.loadText();
});
app.factory("BaconServe", function($http, $q){
return {
randomText: function(){
var deferred = $q.defer();
$http({
method: "GET",
url: "https://baconipsum.com/api/?type=all-meat¶s=1&start-with-lorem=1"
}).success(function(data, status, header, config){
deferred.resolve(data);
}).error(function(){
deferred.reject("An error occured while fetching items");
});
return deferred.promise;
}
}
});
/* Styles go here */
@import url(http://fonts.googleapis.com/css?family=Raleway:400,600,200,800);
body {
font-smoothing: antialiased;
font: 120%/1.5 'Garamond';
font-weight: 200;
text-align: center;
padding: 2em;
background-color: #221000;
color: #221000;
}
.container{
width: 40%;
padding: 1em;
margin: 0 auto;
border-left:1px solid #ddd;
background-color: #F9FDD8;
min-height: 400px;
overflow: auto;
border-radius: 4px;
}
h1 { font-weight: 400; font-family: 'Raleway' }
Promises in AngularJS
----------------------------------
A very simple plunk where I explore exactly how promises are supposed to work in angularjs.