как хранить значения локального хранилища в в angular 6? - PullRequest
0 голосов
/ 20 января 2020

На самом деле у меня есть две страницы, страница productList и страница productDetail. Для просмотра отдельных сведений о продукте у меня есть кнопка просмотра для каждого продукта из списка продуктов. Как показано ниже,

    A    |     B    |  C   | Action
    ---------------------------
    aaa  |   bbb    | ccc  | View
    abc  |   def    | ghi  | View

Также у меня есть фильтрация для каждого поля на странице списка. Например, для фильтрации поданного «A» я использовал обычный выбор, а для «B» - выпадающий список с несколькими выборками, ng-multiselect-dropdown .

Сценарий,

  1. На странице списка, если я делаю фильтрацию для B, это должно применяться.

  2. Затем я нажимаю кнопку просмотра и вижу детали.

  3. Снова возвращаясь к странице списка, фильтрация должна быть там. (концепция, которую я пытаюсь)

Для фильтрации я использовал обычные select и <ng-multiselect-dropdown>.

Для вышеупомянутой концепции я использовал метод локального хранения.

И его работа хороша для select.

Но в случае <ng-multiselect-dropdown> применяется фильтрация. Но если я go для детализации страницы и возврата на страницу списка, фильтрация не применяется.

  1. Ниже приведен код;

                  <label>Status</label>
                  <ng-multiselect-dropdown [data]="statusList" name="iorstatus" #iorstatus="ngModel"
                    [(ngModel)]="selectedItems" [settings]="dropdownSettings" (onSelect)="onItemSelect($event)"
                    (onDeSelect)="statusDeSelect($event)">
                  </ng-multiselect-dropdown>
                </div>
    
  2. Локальное хранилище

    const testObject = {
      status: this.displayStatusList
    }
    

    localStorage.setItem ('testObject', JSON .stringify (TestObject)) *; 1054 *

с этого шага: я получил выбранное значение в статусе.

Затем я применил метод

 onInit(){
    this.getMethod()
 }

getMethod(){
  if (localStorage.getItem('testObject')) {
    let filterObject = localStorage.getItem('testObject');
    this.iorfilteroptions = JSON.parse(filterObject);
    this.iorstatus = this.iorfilteroptions.status;
    this.selectedItems= this.iorfilteroptions.status;
    this.displayStatusList = this.iorfilteroptions.status;
   } 
 }

Но это не работает ... Кто-нибудь может мне помочь ??

1 Ответ

0 голосов
/ 21 января 2020

Необходимо установить синтаксис объекта массива выбранных элементов так же, как объекта данных.

Ключи объекта должны совпадать.

enter image description here

Затем добавьте переменную selectedItems в ngModel.

enter image description here

...