5

Dziwny bug .....Delay i ręcznie zainicjować MDL materialLayout

  • Mam sytuacji wyścigu, gdzie moje angularjs dyrektyw dla header i drawer są kompilacją po materiał-design-lite inicjuje układ.

  • Wydaje się, że dzieje się tak tylko wtedy, gdy wyłączam wifi i pracuję offline. Nie są wymagane żadne zasoby zdalne, chociaż menedżer tagów google i facebook connect plugin fail na karcie sieci.

Pytania:

  1. mogę opóźnić automatycznej inicjalizacji MDL (co widzę dzieje onload strony
  2. mogę ręcznie ponownie zainicjować MDL-układ tak, że właściwie konstruuje? Przycisk szuflady itp., wszystko od nowa?
  3. Czy ktoś ma pojęcie, dlaczego bycie w trybie offline spowodowało problemy z renderowaniem/javascript?

Próbowałem już window.componentHandler.upgradeAllRegistered() ale nie ponownie zainicjować układ

+0

dlaczego nie po prostu 'componentHandler.upgradeElement (document.body)' gdy kątowe w pełni zaangażowani DOM w przeglądarce? – ClojureMostly

Odpowiedz

0

Oto jak rozwiązać ten problem w przypadku gdy ktoś inny prowadzi do tego (MDL wyścigu z kątowy):

  1. załadować biblioteka material.js raz dyrektywa nagłówek został załadowany
  2. czekać na window.componentHandler
  3. Następnie uruchom window.componentHandler.upgradeAllRegistered();

Pełny kod (umieszczone w dyrektywie nagłówka)

function materialize(){ 
     var script = document.createElement('script'); 
     script.src = 'assets/js/material.js'; 
     document.body.appendChild(script); 
     (function upgrade(){ 
      if (!window.componentHandler){ 
       return $timeout(upgrade, 200); 
      } 
      $timeout(window.componentHandler.upgradeAllRegistered); 
     })(); 
} 
Powiązane problemy