mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 07:40:22 +00:00
52 lines
1.6 KiB
Text
52 lines
1.6 KiB
Text
@workInProgress
|
|
@ngdoc overview
|
|
@name Developer Guide: Scopes: Working With Angular Scopes
|
|
@description
|
|
|
|
When you use {@link api/angular.directive.ng:autobind ng:autobind} to bootstrap your application,
|
|
angular creates the root scope automatically for you. If you need more control over the
|
|
bootstrapping process, or if you need to create a root scope for a test, you can do so using the
|
|
{@link api/angular.scope angular.scope()} API.
|
|
|
|
Here is a simple code snippet that demonstrates how to create a scope object, assign model
|
|
properties to it, and register listeners to watch for changes to the model properties:
|
|
|
|
<pre>
|
|
var scope = angular.scope();
|
|
scope.salutation = 'Hello';
|
|
scope.name = 'World';
|
|
|
|
// Verify that greeting is undefined
|
|
expect(scope.greeting).toEqual(undefined);
|
|
|
|
// Set up the watcher...
|
|
scope.$watch('name', function(){
|
|
// when 'name' changes, set 'greeting'...
|
|
this.greeting = this.salutation + ' ' + this.name + '!';
|
|
}
|
|
);
|
|
|
|
// verify that 'greeting' was set...
|
|
expect(scope.greeting).toEqual('Hello World!');
|
|
|
|
// 'name' changed!
|
|
scope.name = 'Misko';
|
|
|
|
// scope.$eval() will propagate the change to listeners
|
|
expect(scope.greeting).toEqual('Hello World!');
|
|
|
|
scope.$eval();
|
|
// verify that '$eval' propagated the change
|
|
expect(scope.greeting).toEqual('Hello Misko!');
|
|
</pre>
|
|
|
|
## Related Topics
|
|
|
|
* {@link dev_guide.scopes Angular Scope Objects}
|
|
* {@link dev_guide.scopes.understanding_scopes Understanding Scopes}
|
|
* {@link dev_guide.scopes.controlling_scopes Applying Controllers to Scopes}
|
|
* {@link dev_guide.scopes.updating_scopes Updating Scopes}
|
|
|
|
## Related API
|
|
|
|
* {@link api/angular.scope Angular Scope API}
|