【发布时间】:2021-07-02 23:26:25
【问题描述】:
我有这个项目,后端使用 VB,前端使用 AngularJS。我要解决的问题之一是在我更改页面然后返回所述页面后不保留其值的下拉列表。
更详细的:
- 我有一个来自后端 - VB 的列表,其中包含我需要的所有数据。
- 我有一个视图,它有 4 个下拉菜单可将过滤器应用到页面。
- 我应用过滤器或过滤器组合以仅查看所需的应用程序。
- 我点击了一个应用程序,因此我被重定向到该应用程序的页面。
- 我在那里做了所有我必须做的事情,所以我点击浏览器后退按钮转到所有应用程序的列表。
- 过滤器丢失了,我需要让它们仍然处于活动状态。
- 列表项
<select id="issue1"
ng-model="RecordStatus"
ng-change="RecordStatusSelection(RecordStatus.ID_RecordStatus)"
ng-options="RecordStatus.RecordStatusDesc for RecordStatus in MyDiversionESDList
| unique:'RecordStatusDesc'
| orderBy:'+RecordStatusDesc'">
<option id="issue1" value="">-- Όλες --</option>
</select>
到目前为止我做了什么:
我需要将localStorage 的值应用于所述下拉列表,以便当我返回此页面时仍然可以应用每个过滤器。
更多代码可以帮助你,帮助我:
1. js 代码,在控制器内部 - 我在其中获取过滤器并将其保存在 localStorage
$scope.RecordStatusSelection = function (recordStatus) {
$scope.filterScope.ID_RecordStatus = recordStatus;
localStorage.setItem('sessionIdRecordStatus', recordStatus);
return $scope.applyMasterFilter()
}
2。 js 代码,我在其中应用过滤器
$scope.applyMasterFilter = function (temp) {
$scope.temp = localStorage.getItem('sessionIdRecordStatus');
$scope.filteredDiversionESD = $filter("filter")($scope.MyDiversionESDList, $scope.filterScope)
$scope.filteredDiversionESD = $filter("filter")($scope.filteredDiversionESD,
$scope.searchKeywordsText)
return $scope.onFilterChange()
}
【问题讨论】: