-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
115 lines (107 loc) · 3.98 KB
/
main.js
File metadata and controls
115 lines (107 loc) · 3.98 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
require.config({
paths: {
'angular': 'http://apps.bdimg.com/libs/angular.js/1.3.13/angular.min',
'angular-route': 'http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route',
'global_config': 'config'
},
shim: {
'angular': {
exports: 'angular'
},
'angular-route': {
deps: ['angular'],
exports: 'ngRoute'
}
},
waitSeconds: 0
});
define(['global_config', 'angular', 'angular-route'], function(config, angular) {
var app = angular.module('app', ['ngRoute']);
console.log(app);
app.config(['$routeProvider', '$controllerProvider', '$compileProvider', '$filterProvider', '$provide', function($routeProvider, $controllerProvider, $compileProvider, $filterProvider, $provide){
app.controller = $controllerProvider.register;
app.directive = $compileProvider.directive;
app.filter = $filterProvider.register;
app.factory = $provide.factory;
/*
$routeProvider.when('/home', {
templateUrl: 'views/home.html',
resolve: {
'data': function($q, $rootScope){
var defer = $q.defer();
require(['controllers/HomeController'], function(){
defer.resolve();
$rootScope.$apply();
});
return defer.promise;
}
}
}).when('/about', {
templateUrl: 'views/about.html',
resolve: {
'data': function($q, $rootScope){
var defer = $q.defer();
require(['controllers/AboutController'], function(){
defer.resolve();
$rootScope.$apply();
});
return defer.promise;
}
}
}).when('/qna', {
templateUrl: 'views/qna.html',
resolve: {
'data': function($q, $rootScope){
var defer = $q.defer();
require(['controllers/QnaController'], function(){
defer.resolve();
$rootScope.$apply();
});
return defer.promise;
}
}
}).otherwise({
redirectTo: '/home'
});*/
function setDependencies(dependencies){
var resolveResult = function($q, $rootScope){
var defer = $q.defer();
require(dependencies, function(){
defer.resolve();
$rootScope.$apply();
});
return defer.promise;
};
return resolveResult;
}
if(config.router.router_maps && angular.isArray(config.router.router_maps) && config.router.router_maps.length){
angular.forEach(config.router.router_maps, function(v, k){
$routeProvider.when(v.hash, {
templateUrl: v.templateUrl,
resolve: {
'data': setDependencies(v.dependencies)
}
});
});
}
if(config.router.default_path){
$routeProvider.otherwise({
redirectTo: config.router.default_path
});
}
}]);
app.run(['$rootScope', '$location', function($rootScope, $location){
$rootScope.$on('$locationChangeStart', function(){
console.log($location.path().slice(1));
});
}]);
app.controller('MainController', ['$scope', function($scope){
$scope.navs = [
{hash: '#/home', text: '首页'},
{hash: '#/about', text: '关于'},
{hash: '#/qna', text: 'Q&A'}
];
}]);
angular.bootstrap(document, ['app']);
return app;
});