纸张对话框中的自动对焦纸张输入只能工作一次?

autofocus paper-input in a paper-dialog works only once?

<paper-dialog>
  <h2>Rename</h2>
  <div>
    <paper-input autofocus></paper-input>
  </div>
  <div class="buttons">
    <paper-button dialog-dismiss>Cancel</paper-button>
    <paper-button dialog-confirm on-click="_confirm">Rename</paper-button>
  </div>
</paper-dialog>

此纸张对话框仅在您第一次打开时触发其纸张输入的自动对焦。

如何做到每次打开对话框都触发焦点?

为了修复对话框的自动对焦,我不得不使用事件侦听器并手动对焦元素。

例如:

window.addEventListener('iron-overlay-opened', function(event) {
    // Grab the autofocus input
    var input = event.target.querySelector('[autofocus]');
    // Switch it because some require special treatment
    switch(input.tagName.toLowerCase()) {
        case 'input':
            input.focus();
            break;
        case 'paper-textarea':
        case 'paper-input':
            input.$.input.focus();
            break;
    }
});

如果你有打开对话框的触发函数,你也可以使用这样的代码:

this.$.__myDialog__.open();

this.async(function() {
  this.$.__myDialog__.querySelector('[autofocus] input').focus();
});