Skip to content

Instantly share code, notes, and snippets.

@egavrilov
Created February 2, 2016 11:08
Show Gist options
  • Save egavrilov/e5f076a12ba1ef5551a6 to your computer and use it in GitHub Desktop.
Save egavrilov/e5f076a12ba1ef5551a6 to your computer and use it in GitHub Desktop.
(function () {
angular.module('sl.14feb')
.factory('Letters', ['$q', '$http', function ($q, $http) {
var factory = {};
factory.getText = function (num) {
return $q.when(factory.letters || fetchLetters()).then(function (letters) {
if (typeof num !== 'undefined') {
return letters[num];
}
var numb = getRandomArbitrary(0, letters.length);
console.log(numb);
return letters[numb];
});
};
function fetchLetters() {
return $http.get('/data/letters.json').then(function (response) {
factory.letters = response.data.texts;
return factory.letters;
})
}
function getRandomArbitrary(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
return factory;
}])
.directive('slLetter', function () {
return {
restrict: 'EA',
scope: true,
controller: ['Letters', LetterController],
controllerAs: 'letter',
bindToController: true
}
});
function LetterController(Letters) {
var vm = this;
vm.setText = function (num) {
Letters.getText(num).then(function (text) {
console.log(text);
vm.text = text;
});
};
vm.setText();
}
}());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment