angularjs - 将值绑定到动态下拉列表,来自 localStorage - AngularJs
问题描述
我有这个项目,后端使用 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()
}
解决方案
如果其他人有同样的问题:
我用过sessionsStorage
。Session
而不是Local
因为我希望它在每次网站启动时都处于默认值。
$scope.RecordStatusSelection = function (recordStatus) {
sessionStorage.setItem('sessionIdRecordStatus', recordStatus);
$scope.filterScope.ID_RecordStatus = sessionStorage.sessionIdRecordStatus;
return $scope.applyMasterFilter()
}
$scope.applyMasterFilter = function (temp) {
$scope.filterScope.ID_RecordStatus = sessionStorage.sessionIdRecordStatus;
$scope.filteredDiversionESD = $filter("filter")($scope.MyDiversionESDList, $scope.filterScope)
$scope.filteredDiversionESD = $filter("filter")($scope.filteredDiversionESD,
$scope.searchKeywordsText)
return $scope.onFilterChange()
}
它运作良好,但不太好。值/选项已应用但未显示,我得到一个空框。
如果我找到完整的解决方案,我将编辑这个答案。
推荐阅读
- xcode - 如何获取外部包来编译所有架构的输出
- kubernetes - 在 Google Kubernetes Engine (GKE) 中增加节点池集群的预定义 4 核 CPU
- javascript - 如何让我的复选框启用/禁用 onclick?
- css - 如何让图像在@media 屏幕上全比例显示?
- prometheus - 有什么方法可以让我知道为什么在 Prometheus 中丢弃了一个目标?
- image - 在 clic 或鼠标飞过时与 sg.image 交互
- html - 移动版透明的下拉菜单按钮
- javascript - 如何解决 docker 镜像中的 ERR_EMPTY_RESPONSE?
- html - 为什么行内块元素之间有空格?
- flask - 如何在烧瓶中并行运行多个 APScheduler 任务?