Удержание значения в раскрывающемся меню

0

У меня уникальная ситуация. У меня есть выпадающее меню caseStatus (см. Код ниже), и оно фактически выписывается во время ng-repeat, но оно привязано к модели, содержащей список статусов Case. Очевидно, на странице появляется несколько этих выпадающих списков после их рендеринга. Все это работает отлично. Проблема в том, что судья может изменить статус дела. Я работаю над функцией, которая справится с этим, и я уверен, что она сработает. Мой вопрос заключается в том, как сделать следующие две вещи (которые, возможно, решаются одним методом, который я подозреваю):

  1. Убедитесь, что каждый раскрывающийся список сохраняет свое последнее значение, когда страница обновляется или возвращается.

  2. Убедитесь, что он загружается до того, что было в последний раз во время ng-repeat. В модели есть поле, которое использует ng-repeat, значение которого имеет значение для Status Case.

Вот код. Существует комментарий, в котором говорится, какой выпадающий вопрос находится под вопросом:

<div ng-controller="CaseListCtrl">
    <div class="row" ng-show="$parent.loggedin">
        <div class="col-sm-12 calselectrow">
            <div class="inner-addon left-addon">
                <span class="glyphicon glyphicon-calendar calicon"></span>

                <input type="text" id="calpick" ng-model="date" jdatepicker />
                <i class="glyphicon glyphicon-calendar calclick"></i>

                <a href="#" class="btn btn-primary flat-edge">>></a>

                <span class="bluedept">Department:</span>
                <select class="selectpicker deptpicker" id="deptSelect" selectpicker data-ng-model="department" ng-change="getCalendar();">
                    <option ng-repeat="department in departments">{{department.CourtRoom}}</option>
                </select>
            </div>
        </div>
    </div>
    <div class="row" ng-show="$parent.loggedin">
        <div>
            <div class="col-sm-8 col-sm-offset-2 caselist" ng-model="cases" ng-repeat-start="case in cases |  orderBy: ['sequence', 'AmPm', 'Sched_Time', 'Case_Number']">
                <div class="sequence">
                    <input type=text class="seq-box" size="1" value="{{case.sequence}}" />
                    <!-- Add hidden field to hold the CalendarID value for updating the sequence later-->
                    <input type="hidden" name="CalendarID_{{case.Case_Number}}" value="{{case.CalendarID}}" />
                </div>
                <div class="casetitle">
                    <span class="caselink">{{case.Case_Number}}</span>
                    <a href="calendar" data-toggle="tooltip" data-placement="top" title="Calendar" class="btn btn-xs btn-danger calicon-view" tooltip>
                        <span class="glyphicon glyphicon-calendar"></span>
                    </a>
                    <a href="documents/{{case.Case_Number}}" data-toggle="tooltip" data-placement="top" title="Documents" class="btn btn-xs btn-danger calicon-view" tooltip>
                        <span class="glyphicon glyphicon-file"></span>
                    </a>
                    <a href="parties/{{case.Case_Number}}" data-toggle="tooltip" data-placement="top" title="Parties" class="btn btn-xs btn-danger calicon-view" tooltip>
                        <span class="glyphicon glyphicon-user"></span>
                    </a>
                    <select class="form-control" id="caseStatus" name="caseStatus" ng-model="caseStatus.statusID" ng-change="setStatus();" ng-options="castStatus.statusName for caseStatus in castStatus track by caseStatus.statusName" required></select><!-- This is the dropdown in question-->
                        {{case.Case_Title}}
</div>
            </div>
            <div class="col-sm-8 col-sm-offset-2 caselist-bottom">
                <div class="col-sm-9 col-sm-offset-1">
                    <div class="hearing-time">{{case.Sched_Time}}&nbsp;{{case.AmPm}}</div>
                    <div class="hearing-title">{{case.Event}}</div>
                </div>
            </div>
            <div ng-repeat-end></div>
        </div>
    </div>
</div>

Как это сделать?

Теги:

1 ответ

0

Вы разрабатываете SPA (одностраничное приложение)? Что значит "страница обновляется или возвращается"? Если вы перезагружаете всю страницу, тогда нет способа получить последние значения, поскольку контроллеры будут повторно инициализировать. Вам нужно будет сохранить значения где-нибудь, например, базу данных или файл cookie, и получить их из службы, которая вводится в ваш контроллер...

  • 0
    Да, это SPA, но это не мешает пользователю нажимать кнопку обновления, верно? :-) У меня есть некоторые механизмы, чтобы справиться с этим для других вещей. На самом деле, мне интересно, пересекаю ли я мост слишком рано. Возможно, когда у меня действительно будут живые данные для тестирования, это не будет проблемой? В конце концов, данные будут сохранены в базе данных, и после нажатия кнопки «Обновить» все перезагружается, включая модель с данными, поэтому реальный вопрос заключается в том, как установить для этого раскрывающегося списка значение в базе данных в качестве выбранного значения при отображении?
  • 0
    Итак, скажем, статус дела сохраняется в базе данных при изменении выбора. Если пользователь нажмет кнопку обновления, то ваш контроллер будет инициализирован. Контроллер должен получить эти сохраненные данные из службы, которая вводится в контроллер, а затем, когда этот вызов службы завершается, например, обещание разрешено, вы заполняете модель, связанную с выбором, значением, которое в данном случае равно caseStatus .statusID.
Показать ещё 2 комментария

Ещё вопросы

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