Я не могу установить опцию, выбранную в 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
может ли кто-нибудь предложить мне, как это сделать?
Вы затрудняете свою жизнь, не используя 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>
ng-selected="{{leader.role_id == role.id}}"
из<option></option>