user2538755
user2538755

Reputation: 314

ng-options with track by using angular 1.3.0

I am trying to use the 'track by' expression to track my selections by value, in an array of objects but, I'm unable to get it to work.


JS

   var app = angular.module('cwsystem', []).controller('RegistrationCtrl', ['$scope', function($scope){
        $scope.roles = [
            {value: '110', position: 'Security Chief'},
            {value: '111', position: 'Security Officer'}
        ];
   }]);

HTML

 <select name="userStatus" ng-model="user.userStatus" ng-options=" role.value as role.position for role in roles track by role.position" class="form-control input-sm" required>
    <option value="">--Select Status--</option>
 </select>

I want the browser to render the results like this:

 <select name="userStatus" ng-model="user.userStatus" ng-options=" role.value as role.position for role in roles track by role.position" class="form-control input-sm" required>
    <option value="">--Select Status--</option>
    <option value="110">Security Chief</option>
    <option value="111">Security Officer</option>
 </select>

Can I get some assistance please on this problem?

Upvotes: 0

Views: 203

Answers (1)

Vaibhav Raut
Vaibhav Raut

Reputation: 472

ng-options does not accept "role.value as role.position for role in roles track by role.position" expression.

<select name="userStatus" ng-model="user.userStatus" ng-options=" role.value as role.position for role in roles" class="form-control input-sm" required>
    <option value="">--Select Status--</option>
</select>

if you use above expression in ng-option you will get selected value in ng-model variable

Upvotes: 3

Related Questions