aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Scope.js10
-rw-r--r--test/ScopeSpec.js18
2 files changed, 16 insertions, 12 deletions
diff --git a/src/Scope.js b/src/Scope.js
index a8c1322c..0f6dfcf5 100644
--- a/src/Scope.js
+++ b/src/Scope.js
@@ -243,6 +243,7 @@ function createScope(parent, providers, instanceCache) {
parent = Parent.prototype = (parent || {});
var instance = new Parent();
var evalLists = {sorted:[]};
+ var $log, $exceptionHandler;
extend(instance, {
'this': instance,
@@ -425,13 +426,13 @@ function createScope(parent, providers, instanceCache) {
return expressionCompile(expression).call(instance);
}
} catch (e) {
- (instance.$log || {error:error}).error(e);
+ if ($log) $log.error(e);
if (isFunction(exceptionHandler)) {
exceptionHandler(e);
} else if (exceptionHandler) {
errorHandlerFor(exceptionHandler, e);
- } else if (isFunction(instance.$exceptionHandler)) {
- instance.$exceptionHandler(e);
+ } else if (isFunction($exceptionHandler)) {
+ $exceptionHandler(e);
}
}
},
@@ -635,5 +636,8 @@ function createScope(parent, providers, instanceCache) {
(instance.$service = createInjector(instance, providers, instanceCache))();
}
+ $log = instance.$service('$log');
+ $exceptionHandler = instance.$service('$exceptionHandler');
+
return instance;
}
diff --git a/test/ScopeSpec.js b/test/ScopeSpec.js
index ee7c1c47..8984f605 100644
--- a/test/ScopeSpec.js
+++ b/test/ScopeSpec.js
@@ -163,13 +163,13 @@ describe('scope/model', function(){
});
it('should report error on $excetionHandler', function(){
- var element = jqLite('<div></div>');
- var scope = createScope();
- scope.$exceptionHandler = function(e){
- this.error = e;
- };
+ var errors = [],
+ errorLogs = [],
+ scope = createScope(null, {}, {$exceptionHandler: function(e) {errors.push(e)},
+ $log: {error: function(e) {errorLogs.push(e)}}});
scope.$tryEval(function(){throw "myError";});
- expect(scope.error).toEqual("myError");
+ expect(errors).toEqual(["myError"]);
+ expect(errorLogs).toEqual(["myError"]);
});
});
@@ -215,8 +215,8 @@ describe('scope/model', function(){
});
describe('$new', function(){
- it('should $new should create new child scope and $become controller', function(){
- var parent = createScope(null, {exampleService: function(){return 'Example Service';}});
+ it('should create new child scope and $become controller', function(){
+ var parent = createScope(null, angularService, {exampleService: 'Example Service'});
var child = parent.$new(temp.InjectController, 10);
expect(child.localService).toEqual('Example Service');
expect(child.extra).toEqual(10);
@@ -229,7 +229,7 @@ describe('scope/model', function(){
describe('$become', function(){
it('should inject properties on controller defined in $inject', function(){
- var parent = createScope(null, {exampleService: function(){return 'Example Service';}});
+ var parent = createScope(null, angularService, {exampleService: 'Example Service'});
var child = createScope(parent);
child.$become(temp.InjectController, 10);
expect(child.localService).toEqual('Example Service');