【问题标题】:Polymer paper input error icons聚合物纸输入错误图标
【发布时间】:2018-07-11 23:07:47
【问题描述】:

Polymer 0.x 有一个组件 paper-input-decorator,其中,如果 paper-input 出现错误,则会显示带有图标的错误消息。以下是 paper-input-decorator 中的代码。

<div class="footer" layout horizontal end-justified>
      <div class="error" flex layout horizontal center hidden?="{{!isInvalid}}">
        <div class="error-text" flex auto role="alert" aria-hidden="{{!isInvalid}}">{{error}}</div>
        <core-icon id="errorIcon" class="error-icon" icon="warning"></core-icon>
      </div>
      <div aria-hidden="true">
        <content select=".counter"></content>
      </div>
    </div>

Polymer 1.x 有一个元素 paper-input-error 可用于显示错误消息。但是,如果需要,有没有办法为此添加图标?

【问题讨论】:

    标签: polymer icons material-design polymer-1.0


    【解决方案1】:

    您可以使用&lt;paper-input-container&gt; 重新创建&lt;paper-input&gt;,并在其&lt;paper-input-error&gt; 中添加一个图标。当输入为非数字时,以下 Polymer 元素模板在 &lt;paper-input-error&gt; 内显示错误图标:

    <template>
      <style>
        :host {
          display: block;
        }
    
        /* In 1.x, the <input> is distributed to paper-input-container, which styles it.
        In 2.x the <iron-input> is distributed to paper-input-container, which styles
        it, but in order for this to work correctly, we need to reset some
        of the native input's properties to inherit (from the iron-input) */
        iron-input > input {
          @apply --paper-input-container-shared-input-style;
          font-family: inherit;
          font-weight: inherit;
          font-size: inherit;
          letter-spacing: inherit;
          word-spacing: inherit;
          line-height: inherit;
          text-shadow: inherit;
          color: inherit;
          cursor: inherit;
        }
      </style>
    
      <paper-input-container>
        <iron-input slot="input" auto-validate>
          <input is="iron-input" pattern="\d+">
        </iron-input>
        <paper-input-error slot="add-on">
          <iron-icon icon="icons:error"></iron-icon>
          <span>Only numbers are allowed!</span>
        </paper-input-error>
      </paper-input-container>
    <template>
    

    截图:

    【讨论】:

    • 谢谢你!我收到一个错误无法解析“--paper-input-container-shared-input-style”自定义属性集。
    • @user2689782 没问题 :) CSS 自定义属性是 defined in paper-input-container.html
    • 我在我的纸张输入容器版本中没有看到它。这是版本 1.x
    • 这是来自 paper-input 版本 2.2.3,适用于 Polymer 1.x。 (注意paper-input-container 包含在paper-input 包中。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多