在我的聚合物应用程序中,当我使用iPhone打开纸张对话框时,它没有居中,这与使用台式机Mac或PC使用Chrome或Safari打开它相反。
我正在动态构造paper-dialog元素,并使用javascript将其放置在DOM模板中,然后调用open()
:
var d = document.createElement('paper-dialog');
d.innerHTML = "<h2>Dialog Title</h2>"
"<p>some content</p>"+
'<div class="buttons">'+
"<paper-button >More Info...</paper-button>"+
"<paper-button dialog-dismiss>Decline</paper-button>"+
"<paper-button dialog-confirm autofocus>Accept</paper-button>"+
"</div>";
var b = Polymer.dom(this.root).appendChild(d);
b.open();
我没有使用任何特殊样式或媒体查询。我之所以要以编程方式添加对话框,是因为我在不同时间显示了大量不同的对话框消息和不同的内容,并且每个对话框都应在不同的屏幕上调用回调,具体取决于添加对话框的人。换句话说,我需要像在angular-material的$ mdDialog中一样添加我的对话框,我知道它对聚合物不是那么琐碎,也许不是预期的用途,但是对于我来说,这就是我所需要的,除非有更好的方法。
请在下面查看问题的屏幕截图
苹果手机:
铬合金:
问题是我b.open();
打完电话后才打电话给我var b = Polymer.dom(this.root).appendChild(d);
。
由于我是动态添加元素的,因此应该b.open();
进行this.async()
调用,就像在Polymer的文档中提到的类似情况一样。
还修复了我的对话框管理器中的代码
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句