A root scope can be created by calling angular.scope()
. Child scopes
are created using the $new()
method.
(Most scopes are created automatically when compiled HTML template is executed.)
Here is a simple scope snippet to show how you can interact with the scope.
var scope = angular.scope(); scope.salutation = 'Hello'; scope.name = 'World'; expect(scope.greeting).toEqual(undefined); scope.$watch('name', function() { this.greeting = this.salutation + ' ' + this.name + '!'; }); // initialize the watch expect(scope.greeting).toEqual(undefined); scope.name = 'Misko'; // still old value, since watches have not been called yet expect(scope.greeting).toEqual(undefined); scope.$digest(); // fire all the watches expect(scope.greeting).toEqual('Hello Misko!');
A scope can inherit from a parent scope, as in this example:
var parent = angular.scope(); var child = parent.$new(); parent.salutation = "Hello"; child.name = "World"; expect(child.salutation).toEqual('Hello'); child.salutation = "Welcome"; expect(child.salutation).toEqual('Welcome'); expect(parent.salutation).toEqual('Hello');
See dependency injection.
angular.scope([providers][, instanceCache]);
providers(optional) – {Object.<string, function()>} –
Map of service factory which need to be provided
for the current scope. Defaults to angular.service
.
instanceCache(optional) – {Object.<string, *>} –
Provides pre-instantiated services which should
append/override services provided by providers
. This is handy when unit-testing and having
the need to override a default service.
{Object}
– Newly created scope.