延迟并手动初始化 mdl materialLayout

Delay and Manually initialize mdl materialLayout

奇怪的错误......

问题

  1. 我可以延迟 MDL 的自动初始化吗(我看到页面 onload 发生了?
  2. 我可以手动重新初始化 mdl 布局,以便它重新正确构建抽屉按钮等吗?
  3. 有谁知道为什么离线会导致任何 rendering/javascript 问题?

我已经试过了window.componentHandler.upgradeAllRegistered()但是没有重新初始化布局

以下是我解决问题的方法,以防其他人 运行 遇到此问题(与 angular 的 mdl 竞争条件):

  1. 加载 header 指令后加载 material.js 库
  2. 等待window.componentHandler
  3. 然后运行window.componentHandler.upgradeAllRegistered();

完整代码(放在 header 指令中)

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