Skip to content

Commit 12ad9ea

Browse files
author
Karl Hepler
committed
Fixed errors with ngRoute configuration
1 parent fcd75ce commit 12ad9ea

File tree

11 files changed

+81
-67
lines changed

11 files changed

+81
-67
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-middleware",
3-
"version": "2.1.1",
3+
"version": "2.1.2",
44
"description": "Laravel-like middleware for angular ui.router and ngRoute",
55
"main": "dist/angular-middleware.min.js",
66
"authors": [

dist/angular-middleware.js

Lines changed: 17 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,11 @@ function middlewareFactory($injector, $q) {
6161

6262
// If we are bypassing everything,
6363
// then go ahead and resolve now
64-
if ( bypassAll ) {
65-
middleware.resolution.resolve();
66-
}
64+
if ( bypassAll ) middleware.resolution.resolve();
6765

6866
// We're not bypassing it,
6967
// so process that first middleware!
70-
else {
71-
// Process the first middleware
72-
middleware.next();
73-
}
68+
else middleware.next();
7469

7570
// Return the promise
7671
return middleware.resolution.promise;
@@ -194,41 +189,34 @@ var $middleware = function middlewareProvider() {
194189

195190
angular.module('ngRoute.middleware', []).provider('$middleware', $middleware)
196191

197-
.config(['$routeProvider', '$provide',
198-
function($routeProvider, $provide) {
192+
.config(['$provide', function configureRouteProvider($provide) {
199193
// Init resolve:{} to all routes
200-
$provide.decorator('$route', function($delegate) {
201-
// Go through each route
202-
angular.forEach($delegate.routes, function(route) {
203-
// Skip all redirects
204-
if ( typeof route.redirectTo !== 'undefined' ) return;
205-
206-
// If resolve is not yet set, set it!
207-
if ( typeof route.resolve === 'undefined' ) {
208-
route.resolve = {};
209-
}
194+
$provide.decorator('$route', ['$delegate', function decorateRoute($delegate) {
195+
// Go through each route & make sure resolve is set on all children
196+
angular.forEach($delegate.routes, function addResolveObject(route) {
197+
route.resolve = route.resolve || {};
210198
});
211199

212200
// Return the delegate
213201
return $delegate;
214-
});
202+
}]);
215203
}])
216204

217205
.run(['$rootScope', '$route', '$location', '$middleware',
218-
function($rootScope, $route, $location, $middleware) {
206+
function handleMiddleware($rootScope, $route, $location, $middleware) {
219207
/**
220208
* Handle middleware
221209
*/
222-
$rootScope.$on('$routeChangeStart', function(event, next, current) {
223-
next.resolve.middleware = function() {
210+
$rootScope.$on('$routeChangeStart', function routeChangeStarted(event, next, current) {
211+
next.resolve.middleware = function resolveNextMiddleware() {
224212
return $middleware(next, next.params);
225213
};
226214
});
227215

228216
/**
229217
* Handle redirects from middleware
230218
*/
231-
$rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {
219+
$rootScope.$on('$routeChangeError', function handleMiddlewareRedirects(event, current, previous, rejection) {
232220
var pattern = /redirectTo\:(.*)/;
233221
var match;
234222

@@ -250,8 +238,7 @@ function($rootScope, $route, $location, $middleware) {
250238

251239
angular.module('ui.router.middleware', []).provider('$middleware', $middleware)
252240

253-
.config(['$stateProvider',
254-
function($stateProvider) {
241+
.config(['$stateProvider', function configureStateProvider($stateProvider) {
255242
// Init resolve:{} to all states
256243
// https://github.com/angular-ui/ui-router/issues/1165
257244
$stateProvider.decorator('path', function(state, parentFn) {
@@ -264,21 +251,21 @@ function($stateProvider) {
264251
}])
265252

266253
.run(['$rootScope', '$state', '$middleware',
267-
function($rootScope, $state, $middleware) {
254+
function handleMiddleware($rootScope, $state, $middleware) {
268255
/**
269256
* Handle middleware
270257
*/
271-
$rootScope.$on('$stateChangeStart', function(event, toState, toParams) {
258+
$rootScope.$on('$stateChangeStart', function stateChangeStarted(event, toState, toParams) {
272259
// Force the state to resolve the middleware before loading
273-
toState.resolve.middleware = function() {
260+
toState.resolve.middleware = function resolveNextMiddleware() {
274261
return $middleware(toState, toParams);
275262
};
276263
});
277264

278265
/**
279266
* Handle redirects from middleware
280267
*/
281-
$rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {
268+
$rootScope.$on('$stateChangeError', function handleMiddlewareRedirects(event, toState, toParams, fromState, fromParams, error) {
282269
var pattern = /redirectTo\:(.*)/;
283270
var match;
284271

dist/angular-middleware.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gulpfile.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,8 @@ gulp.task('watch', function watch() {
2828
gulp.watch(src, ['build-dev']);
2929
});
3030

31+
gulp.task('watch-prod', function watchProd() {
32+
gulp.watch(src, ['build-prod']);
33+
});
34+
3135
gulp.task('default', ['build-dev']);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-middleware",
3-
"version": "2.1.1",
3+
"version": "2.1.2",
44
"description": "Laravel-like middleware for angular uiRouter",
55
"main": "dist/angular-middleware.min.js",
66
"scripts": {

src/routers/ngRoute.js

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,33 @@
11
angular.module('ngRoute.middleware', []).provider('$middleware', $middleware)
22

3-
.config(['$routeProvider', '$provide',
4-
function($routeProvider, $provide) {
3+
.config(['$provide', function configureRouteProvider($provide) {
54
// Init resolve:{} to all routes
6-
$provide.decorator('$route', function($delegate) {
7-
// Go through each route
8-
angular.forEach($delegate.routes, function(route) {
9-
// Skip all redirects
10-
if ( typeof route.redirectTo !== 'undefined' ) return;
11-
12-
// If resolve is not yet set, set it!
13-
if ( typeof route.resolve === 'undefined' ) {
14-
route.resolve = {};
15-
}
5+
$provide.decorator('$route', ['$delegate', function decorateRoute($delegate) {
6+
// Go through each route & make sure resolve is set on all children
7+
angular.forEach($delegate.routes, function addResolveObject(route) {
8+
route.resolve = route.resolve || {};
169
});
1710

1811
// Return the delegate
1912
return $delegate;
20-
});
13+
}]);
2114
}])
2215

2316
.run(['$rootScope', '$route', '$location', '$middleware',
24-
function($rootScope, $route, $location, $middleware) {
17+
function handleMiddleware($rootScope, $route, $location, $middleware) {
2518
/**
2619
* Handle middleware
2720
*/
28-
$rootScope.$on('$routeChangeStart', function(event, next, current) {
29-
next.resolve.middleware = function() {
21+
$rootScope.$on('$routeChangeStart', function routeChangeStarted(event, next, current) {
22+
next.resolve.middleware = function resolveNextMiddleware() {
3023
return $middleware(next, next.params);
3124
};
3225
});
3326

3427
/**
3528
* Handle redirects from middleware
3629
*/
37-
$rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {
30+
$rootScope.$on('$routeChangeError', function handleMiddlewareRedirects(event, current, previous, rejection) {
3831
var pattern = /redirectTo\:(.*)/;
3932
var match;
4033

src/routers/uiRouter.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
angular.module('ui.router.middleware', []).provider('$middleware', $middleware)
22

3-
.config(['$stateProvider',
4-
function($stateProvider) {
3+
.config(['$stateProvider', function configureStateProvider($stateProvider) {
54
// Init resolve:{} to all states
65
// https://github.com/angular-ui/ui-router/issues/1165
76
$stateProvider.decorator('path', function(state, parentFn) {
@@ -14,21 +13,21 @@ function($stateProvider) {
1413
}])
1514

1615
.run(['$rootScope', '$state', '$middleware',
17-
function($rootScope, $state, $middleware) {
16+
function handleMiddleware($rootScope, $state, $middleware) {
1817
/**
1918
* Handle middleware
2019
*/
21-
$rootScope.$on('$stateChangeStart', function(event, toState, toParams) {
20+
$rootScope.$on('$stateChangeStart', function stateChangeStarted(event, toState, toParams) {
2221
// Force the state to resolve the middleware before loading
23-
toState.resolve.middleware = function() {
22+
toState.resolve.middleware = function resolveNextMiddleware() {
2423
return $middleware(toState, toParams);
2524
};
2625
});
2726

2827
/**
2928
* Handle redirects from middleware
3029
*/
31-
$rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {
30+
$rootScope.$on('$stateChangeError', function handleMiddlewareRedirects(event, toState, toParams, fromState, fromParams, error) {
3231
var pattern = /redirectTo\:(.*)/;
3332
var match;
3433

test/ngRoute.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
2-
<html lang="en" ng-app="test">
2+
<html lang="en" ng-app="test" ng-strict-di>
33
<head>
44
<meta charset="UTF-8">
55
<title>Angular Middleware Test - ngRoute</title>

test/ngRoute.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,38 @@ var test = angular.module('test', [
66
test.config(['$middlewareProvider', function($middlewareProvider) {
77

88
$middlewareProvider.map({
9-
'test': function() {
10-
console.log('middleware', this);
9+
'globalMiddleware': function globalMiddleware() {
10+
console.log('globalMiddleware', this);
1111
this.next();
12+
},
13+
'routeMiddleware': function routeMiddleware() {
14+
console.log('routeMiddleware', this);
15+
setTimeout(function timeout() {
16+
this.redirectTo('/poop');
17+
}.bind(this), 1000);
1218
}
1319
});
1420

15-
$middlewareProvider.global('test');
21+
$middlewareProvider.global('globalMiddleware');
1622
}]);
1723

1824
test.config(['$routeProvider', function($routeProvider) {
19-
$routeProvider.when('/test', {
25+
$routeProvider
26+
27+
.when('/test', {
2028
template: '<h1>Test</h1>',
2129
controller: function() {
2230
console.log('CONTROLLER');
23-
}
31+
},
32+
middleware: 'routeMiddleware'
2433
})
34+
2535
.when('/poop', {
2636
template: '<h1>Poop</h1>',
2737
controller: function() {
2838
console.log('POOP');
2939
}
3040
})
41+
3142
.otherwise('/test');
3243
}]);

test/uiRouter.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
2-
<html lang="en" ng-app="test">
2+
<html lang="en" ng-app="test" ng-strict-di>
33
<head>
44
<meta charset="UTF-8">
55
<title>Angular Middleware Test - ui.router</title>

0 commit comments

Comments
 (0)