2016-11-22 112 views
5

奇怪的错误.....延迟和手动初始化MDL materialLayout

  • 我有我的地方为angularJS和header指令drawer正在编译材料设计精简版初始化布局的竞争条件。

  • 它似乎只发生在我关闭我的wifi并离线工作时。不需要远程资源,但是网络标签中的谷歌标签管理器和facebook连接插件失败。

问题

  1. 我能延缓MDL的自动初始化(这是我看到发生在页面的onload
  2. 我可以手动重新初始化MDL布局,使其正确构建?抽屉里的按钮等,重新开始?
  3. 有没有人有任何想法为什么脱机会导致任何渲染/ JavaScript问题?

我已经尝试window.componentHandler.upgradeAllRegistered()但是,这并不重新初始化布局

+0

为什么不'componentHandler.upgradeElement(document.body的)'当你的角度充分COMMITED的DOM的浏览器? – ClojureMostly

回答

0

以下是我的情况下,其他人的问题解决了运行到这(与角MDL竞争条件):

  1. 装入material.js库一旦头指令加载
  2. 等待window.componentHandler
  3. 然后运行window.componentHandler.upgradeAllRegistered();

的完整代码(放在头指令)

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); 
     })(); 
}