将值绑定到动态下拉列表,来自 localStorage - AngularJs

Bind value to dynamic dropdown, from localStorage - AngularJs

我有这个项目,VB 用于后端,AngularJS 用于前端。我负责解决的问题之一是下拉菜单在我更改页面然后返回所述页面后不保留其值。

更详细:


<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()
}

如果其他人遇到同样的问题:

我用了sessionsStorageSession 而不是 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 已应用但未显示,我得到一个空框。

如果找到完整的解决方案,我将编辑此答案。