将值绑定到动态下拉列表,来自 localStorage - AngularJs
Bind value to dynamic dropdown, from 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
中绑定每个下拉列表(准确地说是每个过滤器)的值
localStorage
值随下拉菜单变化
我需要的是将 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()
}
效果不错,但不太好。 value/option 已应用但未显示,我得到一个空框。
如果找到完整的解决方案,我将编辑此答案。
我有这个项目,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
中绑定每个下拉列表(准确地说是每个过滤器)的值
localStorage
值随下拉菜单变化
我需要的是将 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()
}
效果不错,但不太好。 value/option 已应用但未显示,我得到一个空框。
如果找到完整的解决方案,我将编辑此答案。