У меня уникальная ситуация. У меня есть выпадающее меню caseStatus (см. Код ниже), и оно фактически выписывается во время ng-repeat, но оно привязано к модели, содержащей список статусов Case. Очевидно, на странице появляется несколько этих выпадающих списков после их рендеринга. Все это работает отлично. Проблема в том, что судья может изменить статус дела. Я работаю над функцией, которая справится с этим, и я уверен, что она сработает. Мой вопрос заключается в том, как сделать следующие две вещи (которые, возможно, решаются одним методом, который я подозреваю):
Убедитесь, что каждый раскрывающийся список сохраняет свое последнее значение, когда страница обновляется или возвращается.
Убедитесь, что он загружается до того, что было в последний раз во время 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}} {{case.AmPm}}</div>
<div class="hearing-title">{{case.Event}}</div>
</div>
</div>
<div ng-repeat-end></div>
</div>
</div>
</div>
Как это сделать?
Вы разрабатываете SPA (одностраничное приложение)? Что значит "страница обновляется или возвращается"? Если вы перезагружаете всю страницу, тогда нет способа получить последние значения, поскольку контроллеры будут повторно инициализировать. Вам нужно будет сохранить значения где-нибудь, например, базу данных или файл cookie, и получить их из службы, которая вводится в ваш контроллер...