【问题标题】:Save and keep dropdown values after page refresh PrimeNG页面刷新后保存并保留下拉值 PrimeNG
【发布时间】:2018-10-31 03:49:05
【问题描述】:

页面刷新后PrimeNG的下拉项的下拉值如何保存?

https://www.primefaces.org/primeng/#/dropdown

HTML

<p-dropdown [options]="cities2" [(ngModel)]="selectedCity2" optionLabel="name"></p-dropdown>

TypeScript

   import {SelectItem} from 'primeng/api';

    interface City {
      name: string;
      code: string;
    }

    export class MyModel {
        cities2: City[];
        selectedCity2: City;

        constructor() {
            //An array of cities
            this.cities2 = [
                {name: 'New York', code: 'NY'},
                {name: 'Rome', code: 'RM'},
                {name: 'London', code: 'LDN'},
                {name: 'Istanbul', code: 'IST'},
                {name: 'Paris', code: 'PRS'}
            ];
        }
       ngOnInit(){
        localStorage.setItem('key', this.selectedCity2);
        const getItem = localStorage('key');
        this.selectedCity2 = getItem;


    }

【问题讨论】:

    标签: angular typescript local-storage primeng primeng-dropdowns


    【解决方案1】:

    首先,要在(或从)localStorage 中设置(或获取)javascript 对象,请使用JSON.stringify(或JSON.parse)方法。

    然后,在ngOnInit 方法中,您应该只获取存储在 localStorage 中的值,并且不能像在代码中那样更新它。

    所以这个方法变成了:

      ngOnInit() {
        // get localStorage value
        this.selectedCity2 = JSON.parse(localStorage.getItem('key'));
      }
    

    最后,每次你在 dropdown 元素中选择一个项目时,你都必须像这样更新它在 localStorage 中的值:

      saveInLocalStorage() {
        // update localStorage value
        localStorage.setItem('key', JSON.stringify(this.selectedCity2));
      }
    

    StackBlitz

    【讨论】:

    • 嗨,我刚刚在我的应用程序中尝试过,我收到以下错误警告参数类型字符串 |对象不可分配给字符串类型的参数。类型 OBject 不可分配给类型字符串。如果我删除 JSON.parse 则不会显示警告但它不起作用
    • 好的,保存到本地存储后,如果我得到它,数据看起来像这样:{'key:1, name:'Ney York', type:0, validFrom:"2002-01-01T00: 00:00.000Z"} 但仍然无法正常工作
    • 您是否在 HTML 中添加了 (onChange)="saveInLocalStorage()"
    • 本地存储已经保存了,不要再保存了。
    • 不,不是。 PrimeNG 不会为您将数据保存在您的本地存储中。这是你的工作。
    猜你喜欢
    • 2015-06-21
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 2016-12-20
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多