Angular完成加载后加载Material Design Lite

时间:2016-08-13 12:36:25

标签: javascript angularjs rendering material-design-lite

我正在使用Angular和MDL开发一个Web应用程序。

我google了很多,我意识到当页面完全加载并通过角度渲染时,我应该运行componentHandler.upgradeDom()让MDL渲染页面。

但是我真的不知道把它放在哪里。当angular完全呈现页面时,我需要一个回调或执行该命令的东西。

我尝试过使用指令和$viewcontentloaded回调,但它们没有用。

我找到了一个可行的解决方案,但我真的不喜欢每200ms运行一次的功能。

app.run(function() {

  var mdlUpgradeDom = false;

  setInterval(function() {

    if (mdlUpgradeDom) {          
      componentHandler.upgradeDom();
      mdlUpgradeDom = false;
    }
  }, 200);

  var observer = new MutationObserver(function () {
    mdlUpgradeDom = true;
  });

  observer.observe(document.body, {
    childList: true,
    subtree: true
  });

});

您对如何加载mdl有任何了解吗?

修改

我发现问题是在我的控制器中我做了一些对创建标签很有用的异步请求。这样,mdl会在它们未完成时呈现,并且mdl无法正确呈现制表符。

我仍然面临着这个问题。

0 个答案:

没有答案