'use strict'; /** * @ngdoc directive * @name ng.directive:ngController * * @description * The `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: * * * Model — The Model is scope properties; scopes are attached to the DOM where scope properties * are accessed through bindings. * * View — The template (HTML with data bindings) that is rendered into the View. * * Controller — The `ngController` directive 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 {@link ngRoute.$route $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. * * @element ANY * @scope * @param {expression} ngController Name of a globally accessible constructor function or an * {@link guide/expression expression} that on the current scope evaluates to a * constructor function. The controller instance can be published into a scope property * by specifying `as propertyName`. * * @example * 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 angular markup. Notice that the scope becomes the `this` for the * controller's instance. This allows for easy access to the view data from the controller. Also * notice that any changes to the data are automatically reflected in the View without the need * for a manual update. The example is shown in two different declaration styles you may use * according to preference.
Name: [ greet ]
Contact:
it('should check controller as', function() { expect(element('#ctrl-as-exmpl>:input').val()).toBe('John Smith'); expect(element('#ctrl-as-exmpl li:nth-child(1) input').val()) .toBe('408 555 1212'); expect(element('#ctrl-as-exmpl li:nth-child(2) input').val()) .toBe('john.smith@example.org'); element('#ctrl-as-exmpl li:first a:contains("clear")').click(); expect(element('#ctrl-as-exmpl li:first input').val()).toBe(''); element('#ctrl-as-exmpl li:last a:contains("add")').click(); expect(element('#ctrl-as-exmpl li:nth-child(3) input').val()) .toBe('yourname@example.org'); });
Name: [ greet ]
Contact:
it('should check controller', function() { expect(element('#ctrl-exmpl>:input').val()).toBe('John Smith'); expect(element('#ctrl-exmpl li:nth-child(1) input').val()) .toBe('408 555 1212'); expect(element('#ctrl-exmpl li:nth-child(2) input').val()) .toBe('john.smith@example.org'); element('#ctrl-exmpl li:first a:contains("clear")').click(); expect(element('#ctrl-exmpl li:first input').val()).toBe(''); element('#ctrl-exmpl li:last a:contains("add")').click(); expect(element('#ctrl-exmpl li:nth-child(3) input').val()) .toBe('yourname@example.org'); });
*/ var ngControllerDirective = [function() { return { scope: true, controller: '@', priority: 500 }; }];