Как отобразить параметр, выбранный в поле выбора в angularjs?

0

Я не могу установить опцию, выбранную в angularjs

<tr ng-repeat="leader in filtered = (list | orderBy:sort.active:sort.descending) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit">
    <td>
       <select class="form-control mt10" name="leaderRole" ng-model="leader.role_id" ng-class="{ inputerror: !leader.role_id}">
          <option value="">Please select role</option>
          <option ng-repeat="role in employeeRole" ng-selected="{{leader.role_id == role.id}}" value="{{role.id}}">{{role.description}}</option>
       </select>
    </td>
</tr>

Контрольная часть

var leaders_list = angular.module('leaders_list'); //getter
leaders_list.controller('LeaderController',['$scope','$http','$filter',LeaderController]);
function LeaderController($scope,$http,$filter)
{
   $scope.list = [
      {
        "title": "XYZ",
        "name_first": "ABC",
        "name_last": "EFG",
        "email": "[email protected]",
        "id": 1,
        "role_id": 3
      }
   ];

  $scope.employeeRole = [
    {
      "id": 2,
      "description": "JKL",
      "is_active": true
    },
    {
      "id": 3,
      "description": "STV",
      "is_active": true
    }
  ];
}

Здесь leader.role_id - значение role_id для каждого лидера, когда я делаю над кодом, он не показывал мое значение как выбранное.

Если я удалю ng-model из окна выбора, он отобразит мое значение как выбранное.

Ссылка Plunker: https://plnkr.co/edit/qesu3J6mxJdS6bTjPXKI?p=info

может ли кто-нибудь предложить мне, как это сделать?

  • 0
    Попробуйте удалить ng-selected="{{leader.role_id == role.id}}" из <option></option>
  • 0
    Можете показать какой-нибудь код вашего контроллера?
Показать ещё 6 комментариев
Теги:

1 ответ

1
Лучший ответ

Вы затрудняете свою жизнь, не используя ng-options, как рекомендовано.

Просто замените свой выбор на

<select class="form-control mt10" name="leaderRole" 
        ng-model="leader.role_id" ng-class="{ inputerror: !leader.role_id}"
        ng-options="role.id as role.description for role in employeeRole">
  <option value="">Please select role</option>
</select>

https://plnkr.co/edit/fW9O6BCDOl59aziTz7zX?p=preview

  • 0
    Привет @JB Низет, спасибо за ответ. Я делал такие вещи, но я поступаю неправильно. <select class = "form-control mt10" name = "leaderRole" ng-model = "leader.role_id" ng-class = "{inputerror:! leader.role_id}" ng-options = "role.description для роли в employeeRole отслеживать по role.id "> <option value =" "> Пожалуйста, выберите роль </ option> </ select>
  • 0
    привет может кто-нибудь, пожалуйста, объясните разницу. в ng-options = "role.description для роли в треке employeeRole by role.id" и ng-options = "role.id как role.description для роли в employeeRole".
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню