| @@ 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. |
|