Angularjs по умолчанию Выберите выбранное значение

0

Я генерирую таблицу, используя ng-repeat, которая перебирает данные пользователя. Внутри ng-repeat у меня есть поле, выберите, что я использую другой ng-repeat для создания списка типов. Это также создает соответствующий выбор. Однако я не могу понять, как выбрать значение по умолчанию для пользователя; например, пользователь выбирает книгу как тип, когда пользователь перезагружает страницу, которую я хочу, чтобы у выбора была выбрана "книга".

<tr ng-repeat="item in userData" ng-include="'templates/bookmarkrow.html'"></tr>
...
<select ng-model="item.type" ng-options="option.name for option in typeOptions track by option.value" class="form-control hidden"></select>

Я думал, что ng-model привяжет выбор к значению item.type. Есть идеи?

дополнительные детали

typeOptions - это массив объектов; например [{'name': 'some name', 'value': 'some value',...}]. Что касается данных, я знаю, что AngularJS не хранит данные. Предположим в этом примере, что данные поступают из хранилища данных; будь то база данных или локальное хранилище. Большим моментом является то, что я загружу данные на стороне клиента и хочу указать его в выборе.

  • 0
    Можем ли мы увидеть пример userData? Откуда поступают typeOptions? Нам нужно немного больше информации, это довольно расплывчато в настоящее время.
  • 0
    Как только страница будет перезагружена, угловое приложение будет повторно инициализировано, поэтому оно не будет иметь ранее выбранного значения, вам может потребоваться сохранить значение в localstorage / cookie, когда пользователь выберет его, а затем при загрузке страницы получить это значение и обновить выбор
Теги:
select
ng-repeat

2 ответа

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

Я переписал свой код, чтобы использовать ng-repeat в опции, вместо использования ng-options в select. После этого я выбрал опцию ng, чтобы выбрать, какой параметр выбран.

<select class="form-control hidden">
    <option selected-value="{{option.value}}" ng-selected="{{item.type == option.value}}" ng-repeat="option in typeOptions">{{option.name}}</option>
</select>
2

Поскольку угловые данные не сохраняют данные при перезагрузке страниц, данные будут потеряны при полной перезагрузке. Если вы используете угловые маршруты или ui-router, то вы можете сохранять данные на фабриках, которые являются одиночными.

Чтобы сохранить данные во всех перезагрузках страниц, вы можете (как упоминалось) использовать локальное хранилище, файлы cookie или сохранить его в бэкэнд вашего приложения.

Чтобы просто инициализировать значение, вы можете использовать ng-init

Ещё вопросы

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