AngularJS Example:

by g

HTML

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"></script>
<div ng-app="app" ng-controller="root">
    <h3 ng-hide="user">Not yet loaded</h3>            
    {{user}}
</div>

JavaScript

angular.module('app', []).
factory('user', function($timeout, $q) {
    var value = $timeout(function(){ //Simulate a request
        return {
            name: "Jossi"
        };
    },1000);
    
    return {
        value: value
    };
}).
    
controller('root',function($scope, user) {
    $scope.user = user.value;
    
    // want to do stuff when loaded?
    user.value.then(function(userValue){
        // do stuff
    }, function(error) {
        // handle loading error
    });
    
});