9

C'è un modo per chiamare l'evento orientationchange all'interno di una direttiva AngularJS?Evento di modifica dell'orientamento della finestra in Angular

Attualmente sto lavorando con angular-masonry e sto cercando di aggiornare/aggiornare muratura quando l'orientamento del dispositivo mobile cambia.

ho trovato questo, ma mi chiedo come fare questo con il servizio $ finestra all'interno angolare

window.addEventListener("orientationchange", function() { 
    // Announce the new orientation number 
    console.log(window.orientation); 
}, false); 

risposta

30
angular.element($window).bind('orientationchange', function() { 

}); 
+1

Thx, più facile di quanto pensassi! – tdhulster

+3

Ofc non dimenticate di inserire una finestra $ nel vostro controller! – amdev

+0

Ma c'è qualcosa di molto strano, "orientationchange" è il fuoco prima che cambi la larghezza dello schermo ... Quindi se eseguo qualcosa subito dopo "orientationchange" e provo a ottenere la nuova larghezza non funziona, dammi quella vecchia. – amdev

3

ho implementato in questo modo:

$window.addEventListener('orientationchange', function() { 
    your code here 
}, false); 

Cosa fare tu pensi?

I commenti sono benvenuti.

6

Spero che questo aiuti. Allega direttiva come attr, al corpo. Testato con IPhone 5.

'use strict'; 

angular.module('appModuleNameHere') 
    .directive('DirPrefixNameOrientationChange', ['$rootScope',function ($state) { 
    return { 
     restrict: 'A', 
     replace: true, 
     link: function postLink($scope, element, attrs) { 

      element.bind('orientationchange', function() { 
       $state.go($state.current, {}, {reload: true}); 
      }); 

     } 
    }; 
}]); 
+0

Questa soluzione mi ha aiutato nella direttiva della mia mappa. –

Problemi correlati