简体   繁体   English

在Polymer 2.0中为自定义元素编写方法吗?

[英]Writing a method for a custom element in Polymer 2.0?

I'm new to Polymer.js and I'm trying to implement an app-drawer; 我是Polymer.js的新手,正在尝试实现一个应用程序抽屉。 this is what I have so far: 这是我到目前为止所拥有的:

<app-header reveals>
  <app-toolbar>
    <paper-icon-button icon="menu" on-tap="_toggleDrawer"></paper-icon-button>
    <div main-title>Title</div>
    <paper-icon-button icon="search"></paper-icon-button>
  </app-toolbar>
</app-header>

<app-drawer id="drawer" opened={{drawerOpened}} swipe-open tabindex="0">
</app-drawer>

( <paper-icon-button icon="menu" onclick="drawer.toggle()"> did not work 1 ) <paper-icon-button icon="menu" onclick="drawer.toggle()">无效1

.

class MyDrawer extends Polymer.Element {
  static get is() { return 'my-drawer'; }
  static get properties() {
    return {
      prop1: {
        type: String,
        value: 'my-drawer'
      }
    };
  }

}

Assuming this toggle method is correct: 假设此切换方法正确:

_toggleDrawer: function() {
  this.drawerOpened = !this.drawerOpened;
}

, what's the correct syntax for Polymer 2.0 and where exactly do I place this method? ,Polymer 2.0的正确语法是什么,该方法到底应放在哪里?

Or is there a simpler way to toggle the drawer? 还是有更简单的方式切换抽屉?

Thank you! 谢谢!

You have to place the function inside the class that extends the Polymer.Element base class. 您必须将函数放置在扩展Polymer.Element基类的类内。

In Polymer 2 you can define a function as: Polymer 2您可以将函数定义为:

functionName(parameters if any){
   //definition goes here
}

Note: If you use a single underscore (_functionName) , it will be a protected method or function and if you use double underscore (__functionName) it will be the private method or function to the class. 注意:如果使用单个下划线(_functionName) ,它将是受保护的方法或函数;如果使用双下划线(__functionName) ,它将是该类的私有方法或函数。

In your code above, you can simply add the function inside class: 在上面的代码中,您只需在类中添加函数:

class MyDrawer extends Polymer.Element {

  static get is() { return 'my-drawer'; }

  static get properties() {
    return {
      prop1: {
        type: String,
        value: 'my-drawer'
      }
    };
  }

  _toggleDrawer() {
      this.drawerOpened = !this.drawerOpened;
  }

}

drawer-toggle属性添加到您的<paper-icon-button>

<paper-icon-button icon="menu" drawer-toggle></paper-icon-button>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM