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

时间:2015-02-26 21:01:02

标签: javascript polymer

在我的用例中,我有一个纸张动作对话框,我用作第一次运行对话框,这样我就可以从用户那里获得服务器连接信息。我正在使用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关闭纸质对话框或纸张动作对话框?

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

提前致谢

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

除了其他答案,您还可以使用&#34;打开&#34;标签上的属性:

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

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

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

我喜欢这种方法,因为对我而言似乎更多&#34;聚合物&#34;因为它涉及使用属性。无论做什么都有效。

此外,与之前的答案类似的另一种方法是在您的任何功能中使用Polymers魔法$ stuff:

this.$.firstRun.toggle();

您可以使用此。$。id来访问任何聚合物元素及其方法。

答案 2 :(得分:0)

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

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