在Angular视图中下拉保留值

时间:2015-09-24 16:44:42

标签: javascript angularjs

我有一个独特的情况。我有一个名为caseStatus的下拉列表(参见下面的代码),它实际上是在ng-repeat期间写出来的,但它与包含Case Status的列表的模型相关联。显然,一旦呈现,页面上有多个下拉列表。所有这一切都很好。问题是法官可以改变案件的状态。我正在开发一个能够处理它的功能,我相信它会起作用。我的问题是如何做以下两件事(可能都是用我怀疑的一种方法解决的):

  1. 确保每个下拉列表在刷新或返回页面时都保持其最后一个值。

  2. 确保它加载到ng-repeat期间的最后一个。模型中有一个字段,ng-repeat正在使用具有案例状态值的字段。

  3. 这是代码。有一条评论说明哪个下拉列表有问题:

    <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 :(得分:0)

您正在开发SPA(单页应用程序)吗? “页面刷新或返回”是什么意思?如果要重新加载整个页面,则无法检索最后的值,因为控制器将重新初始化。你必须在某处保存值,例如数据库或cookie,并从注入控制器的服务中检索它们......