2017-09-29 2 views
0

est le scénario suivant possible? Supposons que nous ayons une application et que j'ouvre deux parties différentes de l'application dans deux onglets différents de mon navigateur. Est-il maintenant possible d'avoir une partie de l'application dans une sorte de "mode d'écoute" alors quand je fais des changements dans une partie de l'application, il met en œuvre instantanément les changements dans l'autre partie et l'onglet se rafraîchit automatiquement Comment cela se passe-t-il lorsque vous faites toutes les choses dans une seule partie de l'application dans un seul onglet? PS: Je fais référence au cadre angulaire 2.Interaction entre deux onglets d'une application possible avec Angular 2?

+0

oui. Vous pouvez configurer des observables à partir de votre service et vous abonner aux deux composants. – pixelbits

Répondre

0

Utilisez simplement javascript. Pour cela, il y a storage event, l'événement trace les changements dans les stockages. Faire un service comme celui-ci

$(window).on('storage', storageChanged); 
function storageChanged(){ 
    //all your tabs will listen this event  
} 
0

Si vous parlez de deux onglets de navigateur distincts, je ne pense pas. Cependant, je peux penser à une façon dont vous pouvez écouter les modifications apportées au stockage. Dans ce cas, l'un des onglets est en train de changer un élément de stockage et l'autre est à l'écoute au même élément et les applique:

$(window).on('storage', storage_changed); 

function storage_changed(event) 
{ 
    if (ev.originalEvent.key != 'youritemname') return; // ignore other changes 
    var message = JSON.parse(ev.originalEvent.newValue); 
    if (!message) return; 

    //apply the changes to the second tab 

} 

Si vos onglets n'utilisent pas le même code que vous devrez ajouter le code les deux, sinon ce serait suffisant.

Maintenant, lorsque l'élément portant le nom youritemname change, un événement est déclenché et les deux onglets peuvent l'écouter et agir en conséquence.

La bonne chose est que vous n'aurez même pas besoin de lire le stockage.

0

Je ne crains pas parce que chaque onglet va ouvrir une toute nouvelle instance Angular et ce n'est pas partagé.