2017-02-13 2 views
1

Перезагрузка моего веб-приложения AngularJS очищает мой $ rootScope. Как я могу сохранить мой $ rootScope самый простой способ, чтобы он выжил при обновлении страницы?Как повторно заполнить rootScope после обновления страницы

Спасибо за помощь!

+2

Вы можете сохранить данные в localStorage браузера. – Natiq

+0

Могу ли я сохранить полный $ rootScope? –

+0

Прочтите эту ссылку для лучшего понимания http://stackoverflow.com/questions/29849825/angularjs-why-page-refresh-destroy-the-values-of-rootscope – Dhiraj

ответ

1

Прежде всего, давайте поймем, что такое $ rootScope.

The official angular documentation сообщает, что области, используя наблюдатели, обеспечивают четкое разделение между моделью и видом. $ rootScopeProvider - это область, которая уникальна для всего углового приложения: подумайте об этом как об общем объекте, доступ к которому можно получить от каждого контроллера, службы, фабрики и т. Д.

Вы используете $ rootScope, добавив новый собственность ему. Это свойство будет немедленно доступно во всех других компонентах, которые вводят $ rootScopeProvider из-за своих наблюдателей.

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

// ... 
$rootScope.property = true; 
// ... 

Если вы, тем не менее, пытаются динамически заполнить $ rootScope с объектами и информацией, которая не предназначена для хранения как свойство $ rootScope, те будут смываться в следующий раз вы обновляете приложение, потому что вы просто не создавали такое же поведение программно, как в предыдущем состоянии.

Люди не рекомендуют использовать $ rootScope вообще, но если вам действительно нужно его использовать, подумайте немного об использовании. Если вы, например, хотите выполнить http POST при входе в систему, получите ответ и сохраните этот ответ в глобальной переменной, могут быть лучшие услуги (провайдеры), соответствующие вашим потребностям - например, $ cookie, localStorage или просто сохраняя данных в базе данных.

+0

Я хочу сохранить пользовательские данные после входа в систему rootScope JsonObject. Я попытался сохранить его в sessionStorage, но после обновления страницы данные также исчезли. –

Смежные вопросы