app.js
1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*jshint unused: vars */
define(['angular','routes']/*deps*/, function (angular, configRoutes)/*invoke*/ {
'use strict';
var app = angular.module('tshatsApp', [/*angJSDeps*/
'ngCookies',
'ngRoute'
]);
app.config([
'$routeProvider',
'$locationProvider',
'$controllerProvider',
'$compileProvider',
'$filterProvider',
'$provide',
function ($routeProvider, $locationProvider, $controllerProvider, $compileProvider, $filterProvider, $provide) {
app.controller = $controllerProvider.register;
app.directive = $compileProvider.directive;
app.filter = $filterProvider.register;
app.factory = $provide.factory;
app.service = $provide.service;
// enable below line for enable html5 mode
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
/* resolve controller function for lazyload */
var resolveController = function (dependencies){
return {
load: ['$q', '$rootScope', function ($q, $rootScope) {
var defer = $q.defer();
require(dependencies, function () {
$rootScope.$apply(function() {
defer.resolve();
});
});
return defer.promise;
}]
};
};
if (configRoutes.routes !== undefined){
angular.forEach(configRoutes.routes, function(route, path)
{
$routeProvider.when(path, {templateUrl: route.templateUrl, resolve: resolveController(route.dependencies)});
});
}
if (configRoutes.defaultRoutePaths !== undefined){
$routeProvider.otherwise({redirectTo: configRoutes.defaultRoutePaths});
}
}
]);
return app;
});