2016-07-06 10 views
0

Ich muss ein angular js watch in einem spezifischen Browserfenster auslösen, wenn ich ein anderes Browserfenster schließe. Ich habe sessionStorage und localStorage für das Speichern der Nachricht verwendet und dann eine Uhr für sie verwendet, aber hat nicht funktioniert. Irgendein Vorschlag?Wie man eine winkelige js Uhr in einem bestimmten Browserfenster auslöst, wenn ich ein anderes Browserfenster schließe

Beispiel:

//First controller in browser window 1. Listen for the event: 

    $scope.$watch(function() { 
      return localStorage.composeTransferDatas; 
     }, function (newVal, oldVal) {   
      if(newVal != oldVal){ 
       console.log('Hi');    
      } 
     }, true); 


//Second controller in browser window 2. Save data in localStorage: 

    var arrayWindows = JSON.parse(localStorage.composeTransferDatas); 
    arrayWindows['test'] = {data : data, type: type}; 
    localStorage.composeTransferDatas = JSON.stringify(arrayWindows); 
    $window.close(); 

Erwartet, dass die Uhr in der ersten Steuerung ausgelöst wurde, aber es kam nicht. Die localStorage wird jedoch tatsächlich geändert.

+0

Haben Sie den Code installieren, die Sie zeigen können? –

+0

Ich aktualisiere die Frage bereits. Hast du irgendeine Idee? –

+0

Ich glaube nicht, dass die Uhr Ihre localStorage sehen kann, weil sie nur an & scope gebunden ist. Lassen Sie mich sehen, ob ich einen Weg finden kann, um es an localStorage –

Antwort

0

Sie benötigen ngStoage Modul und verwenden den gleichen Code mit $ local

$scope.$watch(function() { 
      return $localStorage.composeTransferDatas; 
     }, function (newVal, oldVal) {   
      if(newVal != oldVal){ 
       console.log('Hi');    
      } 
     }, true); 
Verwandte Themen