[Angular-Scaled Web] 8. Using $http to load JSON data

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);
        };
    })

;
原文地址:https://www.cnblogs.com/Answer1215/p/4185956.html