Перезагрузка моего веб-приложения AngularJS очищает мой $ rootScope. Как я могу сохранить мой $ rootScope самый простой способ, чтобы он выжил при обновлении страницы?Как повторно заполнить rootScope после обновления страницы
Спасибо за помощь!
Перезагрузка моего веб-приложения AngularJS очищает мой $ rootScope. Как я могу сохранить мой $ rootScope самый простой способ, чтобы он выжил при обновлении страницы?Как повторно заполнить rootScope после обновления страницы
Спасибо за помощь!
Прежде всего, давайте поймем, что такое $ rootScope.
The official angular documentation сообщает, что области, используя наблюдатели, обеспечивают четкое разделение между моделью и видом. $ rootScopeProvider - это область, которая уникальна для всего углового приложения: подумайте об этом как об общем объекте, доступ к которому можно получить от каждого контроллера, службы, фабрики и т. Д.
Вы используете $ rootScope, добавив новый собственность ему. Это свойство будет немедленно доступно во всех других компонентах, которые вводят $ rootScopeProvider из-за своих наблюдателей.
Теперь давайте возьмем ваш случай $ rootScope и попытаемся его понять: до тех пор, пока приложение запущено, и вы программно добавляете свойство в $ rootScope, оно будет заполнено, и вы можете использовать значение этого свойства в вашем приложении:
// ...
$rootScope.property = true;
// ...
Если вы, тем не менее, пытаются динамически заполнить $ rootScope с объектами и информацией, которая не предназначена для хранения как свойство $ rootScope, те будут смываться в следующий раз вы обновляете приложение, потому что вы просто не создавали такое же поведение программно, как в предыдущем состоянии.
Люди не рекомендуют использовать $ rootScope вообще, но если вам действительно нужно его использовать, подумайте немного об использовании. Если вы, например, хотите выполнить http POST при входе в систему, получите ответ и сохраните этот ответ в глобальной переменной, могут быть лучшие услуги (провайдеры), соответствующие вашим потребностям - например, $ cookie, localStorage или просто сохраняя данных в базе данных.
Я хочу сохранить пользовательские данные после входа в систему rootScope JsonObject. Я попытался сохранить его в sessionStorage, но после обновления страницы данные также исчезли. –
Вы можете сохранить данные в localStorage браузера. – Natiq
Могу ли я сохранить полный $ rootScope? –
Прочтите эту ссылку для лучшего понимания http://stackoverflow.com/questions/29849825/angularjs-why-page-refresh-destroy-the-values-of-rootscope – Dhiraj