Improve this Doc View Source

## Overview

Binds the given expression to the value of the element.

It is mainly used on `input[radio]` and option elements, so that when the element is selected, the `ngModel` of that element (or its `select` parent element) is set to the bound value. It is especially useful for dynamically generated lists using `ngRepeat`, as shown below.

It can also be used to achieve one-way binding of a given expression to an input element such as an `input[text]` or a `textarea`, when that element does not use ngModel.

## Directive Info

- This directive executes at priority level 100.

## Usage

- as attribute:

      <ANY
        [ng-value="string"]>
      ...
      </ANY>

### Arguments

Param | Type | Details
--- | --- | ---
ngValue (optional) | string | AngularJS expression, whose value will be bound to the `value` attribute and `value` property of the element.

## Example

    <script>
       angular.module('valueExample', [])
         .controller('ExampleController', ['$scope', function($scope) {
           $scope.names = ['pizza', 'unicorns', 'robots'];
           $scope.my = { favorite: 'unicorns' };
         }]);
    </script>
     <form ng-controller="ExampleController">
       <h2>Which is your favorite?</h2>
         <label ng-repeat="name in names" for="{{name}}">
           {{name}}
           <input type="radio"
                  ng-model="my.favorite"
                  ng-value="name"
                  id="{{name}}"
                  name="favorite">
         </label>
       <div>You chose {{my.favorite}}</div>
     </form>

    var favorite = element(by.binding('my.favorite'));

    it('should initialize to model', function() {
      expect(favorite.getText()).toContain('unicorns');
    });
    it('should bind the values to the inputs', function() {
      element.all(by.model('my.favorite')).get(0).click();
      expect(favorite.getText()).toContain('pizza');
    });