2016-06-17 2 views
0

От углового documentation, я вижу, что рецепт значения может использоваться для хранения некоторой информации, которая может быть введена в разные модули. Поэтому я хотел использовать это для хранения некоторых пользовательских конфигураций в моем угловом приложении.Как изменить сохраненное значение в Рецептуре значения углового

То, что я делаю прямо сейчас:

Установите значение по default-

app.value('display', { 
     header: true, 
     switcher: true 
    }) 

У меня есть заголовок и в переключателе моих взглядов, что я хочу, чтобы показать или скрыть на основе значения заголовка и коммутатор, идущий сверху присваивания.

Эта часть отображения и скрытия работает отлично. Я хочу, чтобы, если какой-либо контроллер изменяет значение заголовка на false, заголовок должен быть скрыт для этого конкретного пользователя. Поэтому изнутри моего контроллера я просто устанавливаю значения в false. Но при обновлении страницы эти значения исчезли.

Я не уверен, что здесь происходит не так. Разве мы не должны менять ценность? Если нет, это не просто константа. В случае, если мы не должны обновлять значения, что было бы лучшим способом сохранить некоторые переменные, связанные с пользователем, которые будут доступны для всего приложения.

+0

использование фабрики или услуги, чтобы иметь переменную доступную через вне вас приложение –

+0

здесь подобный вопрос может помочь вам http://stackoverflow.com/questions/37840612/how-to-access- a-specific-scope-variable-when -load-a-different-html-file/37840830 # 37840830 –

+0

использовать локальное хранилище или хранилище сеансов только в том случае, если вы хотите сохранить данные даже после обновления, например, имя пользователя. Такие данные могут храниться в сеансе или местное хранилище, другое разумное использование фабрики или служб, чтобы получить подробное приложение для данных –

ответ

1

Сначала сделайте завод как

(function() { 
"use strict"; 
angular.module('dataModule',[]) 
.factory('datafactory',function(){ 
return { 

}; 
}); 
})(); 

Теперь DataFactory можно получить где-либо в приложении просто нужно вводить этот модуль в нужном модуле и завод в требуемом контроллере

использование, как это

datafactory.myReusableVar ="something" 

позднее в другом контроллере

$scope.myLocalVar =datafactory.myReusableVar 

//using session storage 
var x ="value"// x can be any data type string,array, or object 
sessionStorage.setItem("mySessionItem",x) 
$scope.mysessionValue =sessionStorage.getItem("mySessionItem") 
+0

Это дает ту же проблему. Перезагрузите страницу, и ее нет. Я уточню вопрос с тем, что я пробовал. –

+0

hi vivek, , если вы хотите сохранить значение даже после обновления, вам необходимо использовать хранилище сеансов или локальное хранилище, это то, как вы можете использовать –

0

Проблема в том, что при обновлении страницы текущий контекст потерян (включая все переменные), вы должны решить проблему, сохранив данные в локальном браузере вашего браузера. проверка модуль https://github.com/grevory/angular-local-storage

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