即使我调用componentHandler.upgradeDom(),汉堡包图标也没有显示出来

Sat*_*ees 6 material-design-lite

<header class="mdl-layout__header">
    <div class="mdl-layout__header-row">

        <!-- Navigation -->
        <nav class="mdl-navigation">
            <a class="mdl-navigation__link is-active" href="/">link</a>
            <a class="mdl-navigation__link is-active" href="/">link</a>
        </nav>
    </div>
</header>
<div class="mdl-layout__drawer">
    <nav class="mdl-navigation">
        <a class="mdl-navigation__link is-active" href="/">link</a>
        <a class="mdl-navigation__link is-active" href="/">link</a>
    </nav>
</div>

<!-- Colored FAB button with ripple -->
<button class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
    <i class="material-icons">add</i>
</button>
Run Code Online (Sandbox Code Playgroud)

根据http://mdlhut.com/2015/07/where-is-the-mdl-drawer-icon/,只要我componentHandler.upgradeDom()在动态加载html后调用它就应该工作.为了确保我正在调用upgradeDom,我添加了按钮以查看是否添加了涟漪效果.按钮已更新,但汉堡包图标未显示.

如果我内联html汉堡包图标出现.

小智 0

由于您是动态加载 html,因此您应该在DOM加载后在 init 函数中运行以下命令。请注意,setInterval要确保函数在执行方法DOM之前有足够的时间加载componentHandler

jQuery

 $(document).ready(function() {
      setInterval(function() {
           componentHandler.upgradeAllRegisteredElements();
      }, 1000);
 });
Run Code Online (Sandbox Code Playgroud)

DOM API

 document.addEventListener('DOMContentLoaded', function() {
      setInterval(function() {
           componentHandler.upgradeAllRegisteredElements();
      }, 1000);
 });
Run Code Online (Sandbox Code Playgroud)