@@ 3483-3523 (lines=41) @@ | ||
3480 | * Pluggable resolve mechanism for the modal resolve resolution |
|
3481 | * Supports UI Router's $resolve service |
|
3482 | */ |
|
3483 | .provider('$uibResolve', function() { |
|
3484 | var resolve = this; |
|
3485 | this.resolver = null; |
|
3486 | ||
3487 | this.setResolver = function(resolver) { |
|
3488 | this.resolver = resolver; |
|
3489 | }; |
|
3490 | ||
3491 | this.$get = ['$injector', '$q', function($injector, $q) { |
|
3492 | var resolver = resolve.resolver ? $injector.get(resolve.resolver) : null; |
|
3493 | return { |
|
3494 | resolve: function(invocables, locals, parent, self) { |
|
3495 | if (resolver) { |
|
3496 | return resolver.resolve(invocables, locals, parent, self); |
|
3497 | } |
|
3498 | ||
3499 | var promises = []; |
|
3500 | ||
3501 | angular.forEach(invocables, function(value) { |
|
3502 | if (angular.isFunction(value) || angular.isArray(value)) { |
|
3503 | promises.push($q.resolve($injector.invoke(value))); |
|
3504 | } else if (angular.isString(value)) { |
|
3505 | promises.push($q.resolve($injector.get(value))); |
|
3506 | } else { |
|
3507 | promises.push($q.resolve(value)); |
|
3508 | } |
|
3509 | }); |
|
3510 | ||
3511 | return $q.all(promises).then(function(resolves) { |
|
3512 | var resolveObj = {}; |
|
3513 | var resolveIter = 0; |
|
3514 | angular.forEach(invocables, function(value, key) { |
|
3515 | resolveObj[key] = resolves[resolveIter++]; |
|
3516 | }); |
|
3517 | ||
3518 | return resolveObj; |
|
3519 | }); |
|
3520 | } |
|
3521 | }; |
|
3522 | }]; |
|
3523 | }) |
|
3524 | ||
3525 | /** |
|
3526 | * A helper directive for the $modal service. It creates a backdrop element. |
@@ 3482-3522 (lines=41) @@ | ||
3479 | * Pluggable resolve mechanism for the modal resolve resolution |
|
3480 | * Supports UI Router's $resolve service |
|
3481 | */ |
|
3482 | .provider('$uibResolve', function() { |
|
3483 | var resolve = this; |
|
3484 | this.resolver = null; |
|
3485 | ||
3486 | this.setResolver = function(resolver) { |
|
3487 | this.resolver = resolver; |
|
3488 | }; |
|
3489 | ||
3490 | this.$get = ['$injector', '$q', function($injector, $q) { |
|
3491 | var resolver = resolve.resolver ? $injector.get(resolve.resolver) : null; |
|
3492 | return { |
|
3493 | resolve: function(invocables, locals, parent, self) { |
|
3494 | if (resolver) { |
|
3495 | return resolver.resolve(invocables, locals, parent, self); |
|
3496 | } |
|
3497 | ||
3498 | var promises = []; |
|
3499 | ||
3500 | angular.forEach(invocables, function(value) { |
|
3501 | if (angular.isFunction(value) || angular.isArray(value)) { |
|
3502 | promises.push($q.resolve($injector.invoke(value))); |
|
3503 | } else if (angular.isString(value)) { |
|
3504 | promises.push($q.resolve($injector.get(value))); |
|
3505 | } else { |
|
3506 | promises.push($q.resolve(value)); |
|
3507 | } |
|
3508 | }); |
|
3509 | ||
3510 | return $q.all(promises).then(function(resolves) { |
|
3511 | var resolveObj = {}; |
|
3512 | var resolveIter = 0; |
|
3513 | angular.forEach(invocables, function(value, key) { |
|
3514 | resolveObj[key] = resolves[resolveIter++]; |
|
3515 | }); |
|
3516 | ||
3517 | return resolveObj; |
|
3518 | }); |
|
3519 | } |
|
3520 | }; |
|
3521 | }]; |
|
3522 | }) |
|
3523 | ||
3524 | /** |
|
3525 | * A helper directive for the $modal service. It creates a backdrop element. |