'use strict'; /** * @ngdoc directive * @name ng.directive:ngInit * @restrict AC * * @description * The `ngInit` directive allows you to evaluate an expression in the * current scope. * *
* The only appropriate use of `ngInit` is for aliasing special properties of * {@link api/ng.directive:ngRepeat `ngRepeat`}, as seen in the demo below. Besides this case, you * should use {@link guide/controller controllers} rather than `ngInit` * to initialize values on a scope. *
*
* **Note**: If you have assignment in `ngInit` along with {@link api/ng.$filter `$filter`}, make * sure you have parenthesis for correct precedence: *
 *   
*
*
* * @priority 450 * * @element ANY * @param {expression} ngInit {@link guide/expression Expression} to eval. * * @example
list[ {{outerIndex}} ][ {{innerIndex}} ] = {{value}};
it('should alias index positions', function() { var elements = element.all(by.css('.example-init')); expect(elements.get(0).getText()).toBe('list[ 0 ][ 0 ] = a;'); expect(elements.get(1).getText()).toBe('list[ 0 ][ 1 ] = b;'); expect(elements.get(2).getText()).toBe('list[ 1 ][ 0 ] = c;'); expect(elements.get(3).getText()).toBe('list[ 1 ][ 1 ] = d;'); });
*/ var ngInitDirective = ngDirective({ priority: 450, compile: function() { return { pre: function(scope, element, attrs) { scope.$eval(attrs.ngInit); } }; } });