延迟并手动初始化 mdl materialLayout
Delay and Manually initialize mdl materialLayout
奇怪的错误......
我有一个竞争条件,我的 header
和 drawer
的 angularJS 指令正在编译 after material-design-lite 初始化布局。
这似乎只有在我关闭 wifi 并离线工作时才会发生。不需要远程资源,尽管 google 标签管理器和 facebook 连接插件在网络选项卡中失败。
问题:
- 我可以延迟 MDL 的自动初始化吗(我看到页面
onload
发生了?
- 我可以手动重新初始化 mdl 布局,以便它重新正确构建抽屉按钮等吗?
- 有谁知道为什么离线会导致任何 rendering/javascript 问题?
我已经试过了window.componentHandler.upgradeAllRegistered()
但是没有重新初始化布局
以下是我解决问题的方法,以防其他人 运行 遇到此问题(与 angular 的 mdl 竞争条件):
- 加载 header 指令后加载 material.js 库
- 等待
window.componentHandler
- 然后运行
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);
})();
}
奇怪的错误......
我有一个竞争条件,我的
header
和drawer
的 angularJS 指令正在编译 after material-design-lite 初始化布局。这似乎只有在我关闭 wifi 并离线工作时才会发生。不需要远程资源,尽管 google 标签管理器和 facebook 连接插件在网络选项卡中失败。
问题:
- 我可以延迟 MDL 的自动初始化吗(我看到页面
onload
发生了? - 我可以手动重新初始化 mdl 布局,以便它重新正确构建抽屉按钮等吗?
- 有谁知道为什么离线会导致任何 rendering/javascript 问题?
我已经试过了window.componentHandler.upgradeAllRegistered()
但是没有重新初始化布局
以下是我解决问题的方法,以防其他人 运行 遇到此问题(与 angular 的 mdl 竞争条件):
- 加载 header 指令后加载 material.js 库
- 等待
window.componentHandler
- 然后运行
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);
})();
}