aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDi Peng2011-06-22 11:15:42 -0700
committerIgor Minar2011-06-23 08:06:24 -0700
commitbad62d87a1785f11b0df72ad597b9064517997cf (patch)
treeae170bcbc912d943c92728292fbc0c62ffa0bae2
parent65b6e4874275986607efaf66c3814f3b3a559399 (diff)
downloadangular.js-bad62d87a1785f11b0df72ad597b9064517997cf.tar.bz2
fix:scope - reintroduce support for eager services
8cad231 broke $eager services Problem is that the injector.eager function is not invoked when a new scope is created. Added a test to make sure service is eagerly instantiated. Closes #403
-rw-r--r--src/Scope.js2
-rw-r--r--test/AngularSpec.js7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/Scope.js b/src/Scope.js
index b2b8cdb4..a63cb8f7 100644
--- a/src/Scope.js
+++ b/src/Scope.js
@@ -525,7 +525,7 @@ function createScope(parent, providers, instanceCache) {
* @param {string} serviceId String ID of the service to return.
* @returns {*} Value, object or function returned by the service factory function if any.
*/
- instance.$service = createInjector(instance, providers, instanceCache);
+ (instance.$service = createInjector(instance, providers, instanceCache)).eager();
}
$log = instance.$service('$log');
diff --git a/test/AngularSpec.js b/test/AngularSpec.js
index a4d617b6..983e5848 100644
--- a/test/AngularSpec.js
+++ b/test/AngularSpec.js
@@ -516,6 +516,13 @@ describe('angular', function(){
angular.service('svc2', function(svc1) { return 'svc2-' + svc1; });
expect(angular.scope().$service('svc2')).toEqual('svc2-svc1');
});
+
+ it('should eagerly instantiate a service if $eager is true', function() {
+ var log = [];
+ angular.service('svc1', function() { log.push('svc1'); }, {$eager: true});
+ angular.scope();
+ expect(log).toEqual(['svc1']);
+ });
});
describe('isDate', function() {