我已经找到了Polymer 1样品,我想在Polymer 2应用程序中使用它。

   <app-header-layout>

    <app-header fixed effects="waterfall" slot="header">
      <app-toolbar>
        <paper-icon-button id="toggle" icon="menu"></paper-icon-button>
        <div main-title>Inbox</div>
      </app-toolbar>
    </app-header>

    <app-drawer-layout id="drawerLayout">

      <app-drawer slot="drawer">
         ...
      </app-drawer>

      <sample-content size="100"></sample-content>

    </app-drawer-layout>

  </app-header-layout>

  <script>
    var drawerLayout = document.getElementById('drawerLayout');
    toggle.addEventListener('click', function() {
      if (drawerLayout.forceNarrow || !drawerLayout.narrow) {
        drawerLayout.forceNarrow = !drawerLayout.forceNarrow;
      } else {
        drawerLayout.drawer.toggle();
      }
    });
  </script>


对于Polymer 2,必须更改的一小部分只是底部的js代码,但是由于我是Polymer和js的新手,所以我之前所有尝试将代码更改为新的ES6语法的尝试都没有成功。

任何帮助将非常感激!

最佳答案

该元素定义与该JavaScript的Polymer 2.0等效项(在ES6中)相同:

class XFoo extends Polymer.Element {
  static get is() { return 'x-foo'; }

  ready() {
    super.ready();

    const drawerLayout = this.$.drawerLayout;
    this.$.toggle.addEventListener('click', () => {
      if (drawerLayout.forceNarrow || !drawerLayout.narrow) {
        drawerLayout.forceNarrow = !drawerLayout.forceNarrow;
      } else {
        drawerLayout.drawer.toggle();
      }
    });
  }
}


demo

10-05 21:06
查看更多