Ejemplo factory angularjs

factory angularjs

by Fabian Allel

HTML

<div ng-app="myApp">
    <div ng-controller="Padre1Controller">
        <div ng-repeat="var in variable">{{var.title}}</div>
    </div>
</div>

JavaScript

var myApp = angular.module('myApp', []);
    myApp.controller('Padre1Controller', function ($scope, FabricaServicio) {
        $scope.variable = FabricaServicio.getJsonStatic();

        //para hacer la llamada a una url o un directorio dentro del proyecto
        //FabricaServicio.getUrlJson($scope.query).then(function (resultado) {
        //    $scope.variable= resultado.data;
        //};
    });

    //fabrica == factory en ingles
    myApp.factory('FabricaServicio', function ($q, $http) {
        //si quieres realizar la llamad dentro de un directorio del proyecto donde esté el archivo json o una url de servicio que devuelva el json
        var getUrlJson = function () {
            var deferred = $q.defer();
            $http.get('http://ejemplourljson').success(function (result) {
                deferred.resolve(result);
            }).error(function (data, status, headers, config) {
                deferred.reject();
            });
            return deferred.promise;
        };

        var getJsonStatic = function () {
            var devuelve = [{
                title: 'English',
                grade: 'A'
            }, {
                title: 'Maths',
                grade: 'A'
            }, {
                title: 'Science',
                grade: 'B'
            }, {
                title: 'Geography',
                grade: 'C'
            }];
            return devuelve;
        };

        return {
            getUrlJson: getUrlJson,
            getJsonStatic: getJsonStatic
        };

    });