2016-11-09 1 views
1

Я довольно новичок в AngularJS, и я стараюсь внедрить приложение litte Ionic как можно более чистым.Лучший способ использования sessionStorage в угловом

Мое приложение содержит контроллер для входа в систему, который хранит зарегистрированного пользователя в $ rootScope, но я читал, что использование $ rootScope не является хорошей практикой для обмена переменными между контроллерами.

Так что я хотел бы использовать sessionStorage и LocalStorage, но интересно, что лучшие практики по этому поводу:

  • Если мой ServiceLogin службы записи непосредственно в хранилище или передавать данные на контроллер, который стал единственным, кто может написать на хранение?

  • Могу ли я использовать переменную sessionStorage непосредственно в html между {{}} тегами?

ответ

2

Ну, это зависит от ... Это зависит от размера и объема вашего проекта и «опрятного», который вы хотите быть с вашим кодом. Простой тестовый проект просто для экспериментов - это не то же самое, что большое приложение большого объема с множеством движущихся частей.

В любом случае, чтобы быть «угловатым», вы должны сделать первый путь, который вы сказали, то есть сделать сервис, который сохраняет данные в localStorage и вводить его и вызывать его на контроллерах/компонентах, которым нужна эта функция. Есть некоторые модули, запрограммированные там, которые также имеют резерв в хранилище файлов cookie или другие, но я считаю, что это совсем не обязательно, поскольку локальное/сеансовое хранилище довольно долго поддерживается крупными браузерами, даже мобильными. См. this.

Чтение второго варианта просто заставляет мои глаза жаловать ... и не будет работать (сделать вызов window.getItem (...) изнутри {{}}), по крайней мере, пока они не выпустят версию 1.6 на где они удалили песочницу синтаксического анализатора. Во всяком случае, это плохая практика, и вы должны ее избегать.

+0

Большое спасибо за ваше объяснение! Проект не очень большой, но это для правительственных услуг, так что чем лучше, тем лучше. – Makz23

0

Ну, я думаю, нет проблем, связанных с тем, что ваш сервис записывается на хранение. Что касается использования переменных хранилища непосредственно в HTML, я бы сказал, что лучше назначить переменные хранилища переменной $scope вашего контроллера, так как ваш $scope - это тот, который открыт для представления.

Чтобы управлять хранилищем браузера, ваш лучший выбор - ngStorage.