У меня есть следующая проблема с угловым и html select
-input: когда пользователь загружает страницу, мой select
пуст, пока данные не будут загружены и не будут возвращены из соответствующей службы. В этом случае select
заполняется правильно.
Тем не менее, пользователь должен иметь возможность фильтровать модель одним нажатием кнопки.
Когда я нажимаю кнопку, новый запрос отправляется в REST-API, а ответ содержит новую модель для select
.
К сожалению, select
не будет корректно обновляться, даже когда я изменю его модель
Вот какой код для иллюстрации моей проблемы:
// This happens in my controller
EventService.getAvailableRooms(requestObject).then(function successCallback(response){
// sanatizeRoomTypes is used to generate user-friendly names instead of [1, 2,..]
vm.rooms = DataSanatizer.sanatizeRoomTypes(response.data);
}, function errorCallback(response){
console.log(response)
});
vm.rooms
- это модель моего select
:
<select id="roomSelect" ng-model="eventCtrl.selectedRooms"
ng-options="room.name group by room.type for room in eventCtrl.rooms track by room.id" multiple required>
</select>
В некоторых случаях выбор дублирует его или теряет записи. Кажется, что есть какая-то проблема привязки данных.
Благодаря,
Попробуйте обернуть изменения модели в $ scope.apply:
$scope.$apply(function() {
$scope.data.myVar = "Another value";
});
Читайте здесь для получения дополнительной информации: http://tutorials.jenkov.com/angularjs/watch-digest-apply.html
Вы также можете использовать $ scope. $ Watch для изменения переменных $ scope, чтобы обновить их в вашем представлении.