Using the $http service to make requests to remote servers.
categories-model.js:
angular.module('eggly.models.categories', [ ]) .service('CategoriesModel', function ($http, $q) { var CategoriesModel = {}, URLS = { FETCH: 'data/categories.json' }, categories; function extract(result) { return result.data; } function cacheCategories(result) { categories = extract(result); return categories; } CategoriesModel.getCategories = function() { return (categories) ? $q.when(categories) : $http.get(URLS.FETCH).then(cacheCategories); }; return CategoriesModel; }) ;
bookmarks-model.js
angular.module('eggly.models.bookmarks', [ ]) .service('BookmarksModel', function($http){ var model = this, URLS = { FETCH: 'data/bookmarks.json' }, bookmarks; function extract(result) { return result.data; } function cacheBookmarks(result) { bookmarks = extract(result); return bookmarks; } model.getBookmarks = function() { return $http.get(URLS.FETCH).then(cacheBookmarks); }; }) ;