У меня есть странная проблема, которую я не могу воспроизвести на Plunker. Когда в модели задан первый параметр «пользователь», выбор отображает его правильно, и он устанавливается на «пользователь». Когда я загружаю другого пользователя с ролью: «admin», опция выбора устанавливается в пустую.ng-options не выбирает последний элемент в массиве опций
В мой контроллер я определяю:
$scope.roles = ['user', 'admin'];
Мой объект $ scope.user выглядит следующим образом:
{
"_id": "54f1f8f7e01249f0061c5088",
"displayName": "Test1 User",
"provider": "local",
"username": "test1",
"__v": 0,
"updated": "2015-03-02T07:41:42.388Z",
"created": "2015-02-28T17:20:55.893Z",
"role": "admin",
"profileImageURL": "modules/users/img/profile/default.png",
"email": "[email protected]",
"lastName": "User",
"firstName": "Test1"
}
На мой взгляд:
<select id="role" class="form-control" data-ng-model="user.role" data-ng-options="role for role in roles"></select>
Когда я реверс роли array $scope.roles = ['admin', 'user'];
, тогда администраторы отображаются правильно, а «пользователь» не будет выбран как выбранный.
Странно, если я добавлю третий элемент в массив $scope.roles = ['user', 'admin', 'joe'];
Тогда первые два «пользователя» и «админ» будут выбраны правильно, а последний «joe» не будет.
Любые идеи?
--- UPDATE ---
Сформированный выберите разметки выглядит следующим образом:
<select id="role" class="form-control ng-pristine ng-valid" data-ng-options="role for role in roles" data-ng-model="user.role">
<option value="? string:joe ?"></option>
<option value="0" selected="selected" label="admin">admin</option>
<option value="1" label="user">user</option>
<option value="2" label="joe">joe</option>
</select>
Ну, как вы сказали, это [не воспроизводимо] (http://jsfiddle.net/iluzyanin/w1w28fg7/) с данной информацией. Попробуйте посмотреть фактическую разметку позади 'select' - что вы видите там для последней опции? –
См. Разметку в вопросе обновления – orszaczky
Выглядит [знакомый] (http://stackoverflow.com/questions/16783294/angular-adds-strange-options-into-select-element-when-setting-model-value)? –