在我的聚合物应用程序中,当我使用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's $mdDialog中添加我的对话框,我知道聚合物并不是那么微不足道,也许不是预期用途,但对于我的情况,这就是我需要的,除非有更好的方法。< / p>
请参阅下面问题的屏幕截图
iPhone:
铬:
答案 0 :(得分:7)
问题是我在b.open();
之后立即致电var b = Polymer.dom(this.root).appendChild(d);
。
由于我动态添加了该元素,因此我应该将b.open();
置于this.async()
调用之下,如polymer's documentation中针对类似情况所述。
还修改了dialog-manager
中的代码