Доступ к локальному хранилищу HTML5 с Angular2

Я следую этому руководству: https://medium.com/@blacksonic86/authentication-in-angular-2-958052c64492 об аутентификации в Angular2.

У меня проблема с этой частью:

import localStorage from 'localStorage';

Я читал где-то еще, что я должен использовать эту библиотеку https://github.com/marcj/angular2-localstorage для доступа к локальному хранилищу в HTML5. Это действительно единственный вариант? Могу ли я получить доступ к локальному хранилищу HTML5 из ​​angular2 без использования дополнительных модулей?

Ответ 1

Вы можете использовать localStorage непосредственно в своей службе без import localStorage from 'localStorage';.

Ответ 2

Вы должны использовать непосредственно localStorage, как упоминалось здесь, это встроенные функции браузера (поддерживаемый браузер).

Кроме того, я добавляю ниже несколько примеров того, как добавить в него запись (они работают одинаково).

localStorage.colorSetting = '#a4509b';    // dot notation
localStorage['colorSetting'] = '#a4509b'; // bracket notation
localStorage.setItem('colorSetting', '#a4509b');

В качестве примечания, angular2-localstorage работает поверх встроенного localStorage и обеспечивает "удобный" способ автоматического сохранения и восстановления состояния переменной в вашей директиве.

Ответ 3

Я заметил, что проект локального хранилища ищет кого-то для поглощения и в настоящее время не поддерживается. Поэтому я не буду использовать его до тех пор. Мне удалось найти исправление в файле tsconfig.json.

В свойстве lib вы можете просто добавить dom

"lib": [
      "es2016",
      "dom"
    ]

Это поддерживается в параметрах компилятора https://www.typescriptlang.org/docs/handbook/compiler-options.html.

Мне пришлось перезапустить визуальный код студии, чтобы удалить ошибки.