切换自定义元素“聚合物”中的纸张对话框

尼克拉斯

在使用Polymer和JavaScript进行开发时,我还很陌生,我觉得切换纸张对话框的方法不是最好的方法,或者可以改进。当前,我尝试从自定义元素外部调用toggle()函数,尽管我遇到错误,但
我创建了一个名为my-dialog的自定义元素,它对我有用

<dom-module id="my-dialog">
  <template>
    <style>
      :host {
        display: inline-block;
      }
    </style>

    <paper-dialog id="popUp" with-backdrop on-iron-overlay-opened="patchOverlay">
      <!-- Dialog content -->
      <h2>Hello World</h2>
    </paper-dialog>

  </template>

  <script>
    Polymer({
      is: 'my-dialog',

    });
  </script>
</dom-module>

我现在要从我的页面之一中单击一个纸按钮来打开和关闭对话框。它可以正常工作,但是正如我上面提到的,我有种感觉,那就是我在这里所做的并不是很专业。

<dom-module id="my-profile-view">
  <template>
    <style>
      :host {
        display: block;
      }
    </style>

    <paper-fab icon="create" id="myBtn" on-tap="toggleDialog"></paper-fab>        
    <my-dialog id="myDialog"></my-dialog>

  </template>

  <script>
    Polymer({
      is: 'my-profile-view',

      //Open dialog
      toggleDialog: function() {
        var dialog = this.shadowRoot.querySelector('#myDialog');
        var popUp = dialog.shadowRoot.querySelector('paper-dialog');
        popUp.toggle();
      },
    });
  </script>
</dom-module>

错误消息。我进入控制台:

(程序):5未捕获的TypeError:无法读取null(匿名函数)@(程序):5(匿名函数)@(程序):20的属性'removeAttribute'


错误

如果有人可以帮我清理一下,那就太好了。也许给我一个提示,我还能做什么。

超锐利

第二个元素my-profile-view不应该知道第一个元素的内部逻辑my-dialog

相反,您的自定义对话框应公开一个公共方法(即toggleDialog)。

my-dialog.html <script>

Polymer({
  is: 'my-dialog',
  toggleDialog: function () {
    this.$.popUp.toggle()
  }
});

您的第二个元素可以调用此方法。

my-profile-view.html <script>

Polymer({
  is: 'my-profile-view',
  //Open dialog
  toggleDialog: function() {
    this.$.myDialog.toggleDialog()
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于父页面的自定义元素“聚合物”对话框的大小/位置

聚合物1.x:纸张对话框中的纸张标签不起作用

自定义对话框切换案例的 SetOnClickListener

如何使用纸对话框聚合物元素?

自定义元素模板中的聚合物 3 自定义元素

聚合物1:如何使用自定义元素动态设置纸张复选框标签

聚合物:如何自定义纸张标题的颜色和字体大小

如何在自定义聚合物元素中处理paper-dropdown-close事件

如何使Disqus注释javascript代码在聚合物自定义元素中工作

在自定义聚合物元素中,我需要在何处安装super.attach?

聚合物2,从父级更改自定义元素中的CSS

如何使用存储在自定义聚合物2.0元素属性中的对象

使用“聚合物”核心叠加关闭对话框

聚合物纸对话框未居中

聚合物纸对话框不可见

聚合物1.0中未加载纸张元素

在特定元素上切换特定类 - 聚合物

聚合物查询选择器无法在聚合物元素中找到自定义聚合物元素

聚合物应用程序抽屉切换在大屏幕中不起作用

如何使用户适应行为以将表单居中放置在聚合物中的自定义元素中?

在聚合物的内容元素中使用自定义元素

带对话框的Aurelia自定义元素

如何为自定义聚合物元素创建方法并在主应用程序中调用它?

聚合物添加行为而不创建自定义元素?

具有双向属性绑定的聚合物自定义元素

在自己的项目中使用自定义聚合物元素-如何正确执行?

聚合物自定义元素属性为布尔型值

聚合物:在“自定义元素”中使用querySelector而不是“ this。$”。

如何将聚合物自定义元素绑定到内容?