【问题标题】:Blank Space at bottom of Polymer Paper Dialog聚合物纸对话框底部的空白区域
【发布时间】:2015-02-27 07:07:28
【问题描述】:

我有一个用于登录的自定义聚合物对话框,这是我想要的样子:

这是我用来实现的代码:

<polymer-element name="login-dialog">
  <template>
    <paper-dialog heading="XYZ Login" vertical autoCloseDisabled="true" transition="paper-transition-center" opened="true">
      <p>{{feedback}}</p>
      <paper-input floatingLabel label="Username" inputValue="{{username}}" type="text"></paper-input>
      <paper-input floatingLabel label="Password" inputValue="{{password}}" type="password"></paper-input>

      <paper-button role="button" on-click="{{reset}}" class="noink" affirmative>
        Reset Password
      </paper-button>           
      <paper-button role="button" on-click="{{login}}" class="ink" affirmative>
        Login
      </paper-button>
    </paper-dialog>
  </template>
  <script type="application/dart" src="login-dialog.dart"></script>
</polymer-element>

我不希望按钮关闭对话框,所以我从纸质按钮中删除了肯定,这样如果填写了正确的登录详细信息,我就可以自己关闭对话框。 当我删除肯定时,对话框底部会出现一个大空白:

在飞镖代码中,我现在有以下内容:

  login(event, detail, target) {
    print("Clicked Login");

    return false;
  }

  reset(event, detail, target) {
    print("Clicked Reset");

    return false;
  }

如果我使用肯定,我希望返回 false 会阻止对话框关闭,但它什么也没做。关于如何让按钮不关闭对话框的任何想法,除非我在飞镖代码中告诉它这样做并且底部没有那个空白? (不热衷于用 css 破解它)

【问题讨论】:

    标签: dialog dart polymer dart-polymer


    【解决方案1】:

    返回 false 不会做任何事情。您需要在活动中致电preventDefault()

    login(event, detail, target) {
        print("Clicked Login");
    
        event.preventDefault();
        // event.stopPropagation();
      }
    
      reset(event, detail, target) {
        print("Clicked Reset");
    
        event.preventDefault();
        // event.stopPropagation();
      }
    

    &lt;paper-dialog&gt; 具有禁用自动关闭的特定选项,因此您可以 affirmative 仅用于布局。

    <paper-dialog closeSelector="" ....
    

    另见Prevent paper-dialog from automatically closing

    【讨论】:

    • event.preventDefault();如果按钮设置为肯定,则不执行任何操作,如果未设置为肯定,那么我会得到我正在寻找的行为,但我也会在底部得到那个大的白色间隙。
    • 您是否尝试过添加stopPropagation()(与affirmative),您也可以尝试添加stopImmediatePropagation()
    • 我确实有,它仍然会关闭对话框。除了肯定/不屑一顾之外,我还有什么可以用来确保按钮放在他们需要坐的地方吗?
    • 添加 修复它,感谢 Günter!如果您可以更新您的答案以包含该内容,我会接受。
    • 我将其保留在我的答案中,因为您在问题中使用了return false,即使在preventDefault()stopPropagation() 不起作用的情况下也不起作用。我不知道为什么这不适用于paper-dialog,通常它是抑制事件由DOM的其他部分处理的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多