Открыть свернуть из хранилища сессии - PullRequest
0 голосов
/ 18 октября 2018

Мне нужен открытый коллапс из хранилища сеансов.Сначала я делаю это с помощью ng-repeat.Когда мы переключаем некоторую строку, я беру $ index и устанавливаю для sessionStorage.После обновления я хочу открыть ту же строку (сохраненную в sessionStorage)

Это функция для сохранения в sessionStorage, когда мы щелкаем по строке и при вызове init из хранилища

if(sessionStorage.length){
                $scope.setInterpretation = 'interpretation' + sessionStorage.getItem("indexOfOpenedRow");
            }
$scope.getIndex = function(indexOfRow){
            $scope.fromSessionStorage = false;
            sessionStorage.removeItem("indexOfOpenedRow");
            sessionStorage.setItem("indexOfOpenedRow", indexOfRow);

            $scope.setInterpretation = 'interpretation' + indexOfRow;

        }

Thisв HTML, как я делаю это

<tbody ng-repeat="data in datas | filter:search">
   <tr>
       <td>
           <a href="" data-toggle="collapse" data-target="{{setInterpretation}}" ng-model="$index" ng-click="getIndex($index)"><span class="glyphicon" ng-class="{ 'glyphicon-chevron-right': !group.$hideRows, 'glyphicon-chevron-down': group.$hideRows }"></span>
           </a>
       </td>
       <td>Test</td>
       <td>Test</td>
   </tr>
   <tr class="collapse" id="{{setInterpretation }}">
       <td>Test</td> 
       <td>Test</td> 
       <td>Test</td> 
   </tr>
</tbody>

Но это не работает, потому что, когда я пытаюсь установить из sessionStorage, evry строка ng-repeat получает тот же идентификатор.

Как это исправить?Thnx

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете попробовать рассмотреть этот код ниже.Чтобы отслеживать расширение пользовательских строк с их последнего сеанса, экран останется, приведенный ниже код может помочь вам добиться того же.

Также, пожалуйста, проверьте эту ссылку плунжера для вашего данного примера рабочего сценария.

Контроллер:

if(sessionStorage.length > 0){
  $scope.tableData = JSON.parse(sessionStorage.getItem("indexOfOpenedRow"));
}
$scope.getIndex = function(indexOfRow){
  $scope.tableData[indexOfRow].show = !$scope.tableData[indexOfRow].show;
  sessionStorage.removeItem("indexOfOpenedRow");
  sessionStorage.setItem("indexOfOpenedRow", JSON.stringify($scope.tableData));
}

Шаблон:

<tbody ng-repeat="tab in tableData track by $index">
   <tr>
      <td>
          <button ng-click="getIndex($index)">
            {{ tab.show ? '-' : '+'}}
          </button>
      </td>
      <td>{{tab.col1}}</td>
      <td>{{tab.col2}}</td>
      <td>{{tab.col3}}</td>
   </tr>
   <tr class="collapse" ng-if="tab.show">
      <td></td> 
      <td>Test</td> 
      <td>Test</td> 
      <td>Test</td> 
   </tr>
</tbody>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...