Angular+JQ+Bootstrap

by andredgusmao

HTML

<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="http://code.angularjs.org/1.0.0/angular-1.0.0.js"></script>
<div ng-controller="Ctrl1">
    <h2>Ctrl1</h2>
    <ul>
        <li ng-repeat="item in list">{{item}}</li>
    </ul>
</div>
<hr />
<div ng-controller="Ctrl2">
    <h2>Ctrl2</h2>
      <ul>
        <li ng-repeat="item in list">{{item}}</li>
    </ul>
</div>

JavaScript

var app = angular.module('myApp', []);

var heavyFunction = function(cb) {
    setTimeout(function() {
        console.log(Date.now());
        cb([1, 2, 3, 4]);
    }, 2000);
};

app.factory('service', function($q, $rootScope) {
    
    var taskInTheFuture = $q.defer();
    
    heavyFunction(function(data){
        $rootScope.$apply(function(){
            taskInTheFuture.resolve(data);
        });        
    });
    
    return {
        list : taskInTheFuture.promise       
    };
});

function Ctrl1($scope, service) {
    $scope.list = service.list;
}

function Ctrl2($scope, service) {
    $scope.list = service.list;
}