реализовать веб-хранилище с наблюдаемым в угловом приложении - PullRequest
0 голосов
/ 27 ноября 2018

Я использую библиотеку ngx-webstorage в своем угловом приложении.Проблема в том, что основной компонент уже инициализирован, когда я вызываю intitalizeIntro()

Я хочу прослушать изменения в моем локальном хранилище и выполнить метод introDashboard.start() в основном компоненте.

Это то, чтоЯ попытался.

child.component.ts

initializeIntro(value: string){
this.localStorage.store('selectedIntro', value); // value ='Dashboard'
console.log('Intro Activated ' + value); 
}

main.component.ts

ngOnChanges(){
this.localStorage.observe('selectedIntro') // i can see value stored in local storage
 .subscribe((newValue) =>{
   if(newValue === 'Dashboard'){ // but not able to enter if loop
     console.log('inside introDashboard loop');
     introDashboard.start();
   }
 });
}

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

Я чувствую, что должен где-то использовать emit() , но не в состоянии понять, как.

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете попробовать добавить метод ngOnInit вместо ngOnchanges.

@LocalStorage('selectedIntro') boundAttribute;

ngOnInit(){
   this.localStorage.observe('selectedIntro') // i can see value stored in local storage
    .subscribe((newValue) =>{
    if(newValue === 'Dashboard'){ // but not able to enter if loop
     console.log('inside introDashboard loop');
     introDashboard.start();
    }
  });
}
...