使用javascript关闭纸张对话框或纸张操作对话框

close paper-dialog or paper-action-dialog with javascript

本文关键字:对话框 操作 张操作 使用 javascript      更新时间:2024-06-03

在我的用例中,我有一个书面操作对话框,用作首次运行对话框,这样我就可以从用户那里获得服务器连接信息。我使用autoclosedisabled属性,因为我不希望用户在获取服务器详细信息之前单击关闭对话框。当用户提交详细信息时,我希望对话框保持打开状态,直到我从服务器收到通知应用程序详细信息有效的返回。然后我想用javascript关闭对话框,并对数据进行ajax调用。

html

<paper-action-dialog id="firstRun" autoclosedisabled transition="core-transition-center">
  <custom-form></custom-form>
</paper-action-dialog>

目前我使用的是document.querySelector('core-overlay-layer').classList.remove('core-opened');,它确实关闭了对话框,但看起来这会导致您尝试打开的任何对话框出现问题,也会导致祝酒词出现问题。然后你必须重新加载应用程序来纠正问题。

有没有用javascript关闭纸质对话框或纸质操作对话框?

我真的不太喜欢当用户点击提交时关闭对话框,如果由于任何原因提交失败,则再次打开对话框。

提前感谢

是的,只需像这样调用close方法即可。$。firstRun.close()

例如:https://github.com/Kalitte/polymer-router-demo/

除了其他答案外,您还可以使用标签上的"open"属性:

<paper-action-dialog opened="{{dialogOpen}}"></paper-action-dialog>

然后在js中的任何Polymer函数调用中,只需说:

foo: function(){
   this.dialogOpen = true;
}

我喜欢这种方法,因为对我来说,它似乎更"聚合",因为它涉及到使用属性。不管怎样。

此外,另一种类似于之前答案的方法是在任何功能中使用Polymers神奇的$东西:

this.$.firstRun.toggle();

你可以用这个。$。id访问任何聚合物元素及其方法。

您尝试过元素的.thoggle()方法吗。您可以在聚合物就绪事件后访问元素

var el = document.getElementById('yourdialogid');
el.toggle()