Я генерирую таблицу, используя 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 не хранит данные. Предположим в этом примере, что данные поступают из хранилища данных; будь то база данных или локальное хранилище. Большим моментом является то, что я загружу данные на стороне клиента и хочу указать его в выборе.
Я переписал свой код, чтобы использовать 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>
Поскольку угловые данные не сохраняют данные при перезагрузке страниц, данные будут потеряны при полной перезагрузке. Если вы используете угловые маршруты или ui-router, то вы можете сохранять данные на фабриках, которые являются одиночными.
Чтобы сохранить данные во всех перезагрузках страниц, вы можете (как упоминалось) использовать локальное хранилище, файлы cookie или сохранить его в бэкэнд вашего приложения.
Чтобы просто инициализировать значение, вы можете использовать ng-init