Установка выбранной опции из контроллера в Angularjs

0

Я использую angularjs для создания страницы поиска, где пользователь может использовать фильтры для поиска предметов, которые они хотят. Если пользователь покинет эту страницу, а затем вернется, я хочу, чтобы тег select отображал то, что было раньше. Например, если пользователь отфильтровывает элементы с минимальной ценой $ 0, а затем оставляет страницу, но возвращается к ней, я хочу, чтобы тег select отображал $ 0. Это мой html...

            <p><b> Minimum Price: </b>
                <select class="form-control" style="width:30%" data-ng-model="minPrice" ng-options="number for number in price track by number">
                </select>
            </p>

и это мой контроллер...

    $scope.search = function() {

        if( $scope.minPrice == "None") {
            $scope.minPrice = "";
        } 

        // get the search query
        $http.get("http://localhost:8080/RealEstate/houseListing/filter?" + "minPrice=" + $scope.minPrice + "&maxPrice=" + $scope.maxPrice + "&bedsTotal=" + $scope.beds + "&bathsTotal=" + $scope.baths)
        .success(function(response) {
            $scope.result = response;
            alert($scope.result);

            sessionStorage.minPrice = $scope.minPrice;
            sessionStorage.result = true;
        })
    }

    if(sessionStorage.result != null) {

        // restore the last search
        $scope.minPrice = sessionStorage.minPrice;
        $scope.search();

    } else {

Я сократил код, чтобы было легче читать, но, если быть точным, я хочу, чтобы тег select отображал опцию, которую пользователь выбрал раньше. Я сохранил значение в sessionStorage, а затем попытался восстановить его, когда страница загружена, если она существует, но тег select ничего не показывает.

  • 0
    Я не вижу проблем с размещенным кодом, вам придется опубликовать больше кода.
Теги:

1 ответ

0

да это возможно. Здесь работает плункер, основанный на вашем коде, где я даже записываю значение minPrice в sessionstorage, а затем читаю его обратно для выбранного значения выбранной модели:

http://plnkr.co/edit/n2miUv?p=preview

JS

$scope.price = [10, 11, 13, 100, 33, 57];

// Save data to sessionStorage
sessionStorage.setItem('minPrice', 13);
// Get saved data from sessionStorage
var data = sessionStorage.getItem('minPrice');

$scope.minPrice = data;

HTML

<p>
  <b> Minimum Price: </b>
  <select class="form-control" style="width:30%" 
    ng-model="minPrice"
    ng-options="number for number in price track by number"></select>
</p>

Я подозреваю, что у вас может возникнуть проблема с вашим значением, которое вы пытаетесь связать, если оно не работает.

Ещё вопросы

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