ngController directive attaches a controller class to the view. This is a key aspect of how angular supports the principles behind the Model-View-Controller design pattern.
MVC components in angular:
ngControllerdirective specifies a Controller class; the class contains business logic behind the application to decorate the scope with functions and values
Note that you can also attach controllers to the DOM by declaring it in a route definition via the $route service. A common mistake is to declare the controller again using
ng-controller in the template itself. This will cause the controller to be attached and executed twice.
<ng-controller ng-controller="expression"> ... </ng-controller>
<ANY ng-controller="expression"> ... </ANY>
|ngController|| || |
The controller instance can be published into a scope property by specifying
Here is a simple form for editing user contact information. Adding, removing, clearing, and greeting are methods declared on the controller (see source tab). These methods can easily be called from the AngularJS markup. Any changes to the data are automatically reflected in the View without the need for a manual update.
Two different declaration styles are included below:
ng-controller="SettingsController1 as settings"
$scopeinto the controller:
The second option is more common in the AngularJS community, and is generally used in boilerplates and in this guide. However, there are advantages to binding properties directly to the controller and avoiding scope.
controller asmakes it obvious which controller you are accessing in the template when multiple controllers apply to an element.
.in the bindings, you don't have to worry about prototypal inheritance masking primitives.
This example demonstrates the
controller as syntax.
This example demonstrates the "attach to
$scope" style of controller.
© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.