Created
October 19, 2013 13:57
-
-
Save colthreepv/7056200 to your computer and use it in GitHub Desktop.
AngularJS mocked backend demonstration, step-1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
angular.module('app', ['appMock']) | |
.controller('BodyController', function ($scope, $http) { | |
$scope.games = []; | |
// function bound to the refrsh button | |
$scope.refresh = function () { | |
$http.get('/games').success(function (data, status, headers, config) { | |
$scope.games = data; | |
}); | |
}; | |
$scope.refresh(); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html ng-app="app"> | |
<head> | |
<link data-require="[email protected]" data-semver="3.0.0" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" /> | |
<script data-require="[email protected]" data-semver="1.2.0-rc3-nonmin" src="http://code.angularjs.org/1.2.0-rc.3/angular.js"></script> | |
<script src="http://code.angularjs.org/1.2.0-rc.3/angular-mocks.js"></script> | |
<script src="mock.js"></script> | |
<script src="app.js"></script> | |
</head> | |
<body ng-controller="BodyController"> | |
<div class="jumbotron"> | |
<div class="container"> | |
<h1>Top 100 Games Evah!</h1> | |
<p> | |
<button class="btn btn-success" ng-click="refresh()"> | |
<i class="glyphicon glyphicon-refresh"></i> | |
<span>refresh</span> | |
</button> | |
</p> | |
</div> | |
</div> | |
<div class="container"> | |
<table class="table table-striped"> | |
<thead> | |
<tr> | |
<th>#</th> | |
<th>Videogame</th> | |
<th>Year</th> | |
<th>randomScore</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr ng-repeat="game in games | orderBy:'position'"> | |
<th>{{ game.position }}</th> | |
<th>{{ game.name }}</th> | |
<th>{{ game.year }}</th> | |
<th>{{ game.score }}</th> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
angular.module('appMock', ['ngMockE2E']) | |
// Gently stolen from http://www.imdb.com/list/3rOZHHY7HCc/ | |
.constant('gamesArray', [{"name":"The Legend of Zelda: Majora's Mask","year":2000},{"name":"Metal Gear Solid","year":1998},{"name":"Resident Evil 4","year":2005},{"name":"Star Wars: Knights of the Old Republic","year":2003},{"name":"Half-Life 2","year":2004},{"name":"Shenmue II","year":2001},{"name":"Mass Effect 2","year":2010},{"name":"Metal Gear Solid 4: Guns of the Patriots","year":2008},{"name":"Super Mario Galaxy 2","year":2010},{"name":"Kingdom Hearts II","year":2005},{"name":"Heavy Rain","year":2010},{"name":"Fallout 3","year":2008},{"name":"Metal Gear Solid 3: Subsistence","year":2005},{"name":"BioShock","year":2007},{"name":"The Legend of Zelda: Ocarina of Time","year":1998},{"name":"Half-Life 2: Episode Two","year":2007},{"name":"Portal 2","year":2011},{"name":"Yakuza 3","year":2009},{"name":"The Legend of Zelda: Twilight Princess","year":2006},{"name":"Grand Theft Auto V","year":2013},{"name":"Grand Theft Auto: San Andreas","year":2004},{"name":"Mass Effect","year":2007},{"name":"Tomb Raider","year":2013},{"name":"Batman: Arkham City","year":2011},{"name":"Mass Effect 3","year":2012},{"name":"The Last of Us","year":2013},{"name":"Super Smash Bros. Brawl","year":2008},{"name":"Uncharted 2: Among Thieves","year":2009},{"name":"Grand Theft Auto IV","year":2008},{"name":"Metal Gear Solid 2: Sons of Liberty","year":2001},{"name":"Super Smash Bros. Melee","year":2001},{"name":"Star Wars: Knights of the Old Republic II - The Sith Lords","year":2004},{"name":"Gears of War 2","year":2008},{"name":"Silent Hill 3","year":2003},{"name":"Splinter Cell: Chaos Theory","year":2005},{"name":"Super Mario Bros.","year":1985},{"name":"Batman: Arkham Asylum","year":2009},{"name":"The Legend of Zelda","year":1986},{"name":"God of War II","year":2007},{"name":"LittleBigPlanet","year":2008},{"name":"Assassin's Creed II","year":2009},{"name":"Shin Megami Tensei: Persona 4","year":2008},{"name":"The Elder Scrolls V: Skyrim","year":2011},{"name":"Uncharted 3: Drake's Deception","year":2011},{"name":"Portal","year":2007},{"name":"Infamous 2","year":2011},{"name":"Splinter Cell","year":2002},{"name":"Ratchet & Clank: Going Commando","year":2003},{"name":"Gran Turismo 3: A-Spec","year":2001},{"name":"Metroid Prime 3: Corruption","year":2007},{"name":"Tomb Raider II Starring Lara Croft","year":1997},{"name":"Grand Theft Auto IV: The Ballad of Gay Tony","year":2009},{"name":"Beyond: Two Souls","year":2013},{"name":"Halo 3","year":2007},{"name":"The Elder Scrolls IV: Oblivion","year":2006},{"name":"Uncharted: Drake's Fortune","year":2007},{"name":"Devil May Cry","year":2001},{"name":"Ratchet & Clank Future: Tools of Destruction","year":2007},{"name":"LittleBigPlanet 2","year":2011},{"name":"Bully","year":2006},{"name":"Splinter Cell: Conviction","year":2010},{"name":"God of War III","year":2010},{"name":"Half-Life 2: Episode One","year":2006},{"name":"Grand Theft Auto: Vice City","year":2002},{"name":"Prince of Persia: The Sands of Time","year":2003},{"name":"Fallout: New Vegas","year":2010},{"name":"Assassin's Creed","year":2007},{"name":"Jak 3","year":2004},{"name":"Soulcalibur II","year":2003},{"name":"Splinter Cell: Pandora Tomorrow","year":2004},{"name":"Grand Theft Auto 3","year":2001},{"name":"Gears of War 3","year":2011},{"name":"Deus Ex: Human Revolution","year":2011},{"name":"L.A. Noire","year":2011},{"name":"The Simpsons: Hit & Run","year":2003},{"name":"Ratchet & Clank","year":2002},{"name":"Super C","year":1988},{"name":"Saints Row IV","year":2013},{"name":"Max Payne","year":2001},{"name":"Mercenaries: Playground of Destruction","year":2005},{"name":"Pikmin 3","year":2013},{"name":"Call of Duty 4: Modern Warfare","year":2007},{"name":"Grand Theft Auto IV: The Lost and Damned","year":2009},{"name":"God of War: Ghost of Sparta","year":2010},{"name":"Tekken Tag Tournament 2","year":2012},{"name":"Halo 2","year":2004},{"name":"Heavenly Sword","year":2007},{"name":"Crash Bandicoot: Warped","year":1998},{"name":"Max Payne 2: The Fall of Max Payne","year":2003},{"name":"The Legend of Zelda: The Wind Waker","year":2002},{"name":"Red Dead Redemption","year":2010},{"name":"Virtua Fighter 5","year":2007},{"name":"Halo","year":2001},{"name":"Kingdom Hearts","year":2002},{"name":"Resistance: Fall of Man","year":2006},{"name":"Dead or Alive 3","year":2001},{"name":"Ninja Gaiden 3","year":2012},{"name":"Sonic the Hedgehog","year":1991},{"name":"ZombiU","year":2012},{"name":"ESPN NFL 2K5","year":2004}]) | |
// mock backend definitions goes there! | |
.run(function ($httpBackend, gamesArray) { | |
// Defining GET /games | |
$httpBackend.whenGET('/games').respond(function (method, url, data, headers) { | |
var positions = [], | |
randomGames; | |
for (var i = 0; i < 100; i++) { | |
positions.push(i+1); | |
} | |
randomGames = gamesArray.map(function (game, index) { | |
game.position = positions.splice(Math.floor(Math.random() * positions.length), 1)[0]; | |
game.score = (1 + Math.random() * 9).toPrecision(3) + '/10'; | |
return game; | |
}); | |
return [200, randomGames]; | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment