ThomasBurleson
8/19/2013 - 2:11 AM

angularServices.js

//from most to least verbose, but it is all the same in the end. 

(function() {

    var module = angular.module("myApp.myModel", []);
    
    var MyModel = function MyModel() {
        this.asyncService = null;

        this.someApi = function() {
            return this.asyncService.getStuff(); //promise?
        }

    }

    var myModelProvider = Class.extend({
        model: new MyModel();
        $get: ['asyncService', function (asyncService) {
            model.asyncService = asyncService; //dependency injection
            return model; //resolved for the lifetime of app
        }]
    });

    modules.provider('myModel', myModelProvider);
}())

// or

(function() {

    var module = angular.module("myApp.myModel", []);
    
    var MyModel = function MyModel(asyncService) {
        this.asyncService = null;

        this.someApi = function() {
            return this.asyncService.getStuff(); //promise?
        }

    }

    module.factory('myModel', ['asyncService', function (asyncService) {
        //could do some stuff here
        return new MyModel(asyncService); 
    }]);

}())

// or

(function() {

    var module = angular.module("myApp.myModel", []);
    
    var MyModel = function MyModel(asyncService) {
        this.asyncService = null;

        this.someApi = function() {
            return this.asyncService.getStuff(); //promise?
        }

    }

    module.service('myModel', ['$asyncService', MyModel]); //most simple option
}())