gpt4 book ai didi

javascript - 切换自定义元素 Polymer 中的纸张对话框

转载 作者:行者123 更新时间:2023-11-29 14:40:16 25 4
gpt4 key购买 nike

在使用 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>

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

(program):5 Uncaught TypeError: Cannot read property 'removeAttribute' of null(anonymous function) @(program):5(anonymous function) @(program):20


Error

如果有人能为我解决问题,那就太好了。也许给我提示我还能做什么。

最佳答案

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

相反,您的客户对话框应该公开一个公共(public)方法(即 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()
}
});

关于javascript - 切换自定义元素 Polymer 中的纸张对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39229959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com