2015-10-29 53 views
2

我具有以下聚合物元件:聚合物紙輸入總是結合文本

<link rel="import" href="../bower_components/polymer/polymer.html"> 
<link rel="import" href="../bower_components/paper-input/paper-input.html"> 
<link rel="import" href="../bower_components/iron-input/iron-input.html"> 

<dom-module id="number-input"> 
    <template> 
     <paper-input type="number" label="amount" value="{{amount}}"></paper-input> 
    </template> 
    <script> 
     Polymer({ 
      is: "number-input", 
      properties: { 
       amount: { 
        type: Number, 
       } 
      } 
     }); 
    </script> 
</dom-module> 

的「量」屬性始終是一個字符串。即使我將該屬性定義爲「數字」。我錯過了什麼或者這是正常的行爲?

桑德。

+0

無論您將屬性類型設置爲什麼,輸入值始終是字符串。 –

+0

該值始終是一個字符串。但是,如果您設置了輸入類型,則在普通html元素上,您將獲得不同的用戶界面,例如,觸摸設備上的數字小鍵盤而不是全鍵盤,輸入自動限制爲數字。 – jptknta

+0

爲數量屬性添加觀察者,並在觀察者中自己執行字符串到數字的轉換,並將結果返回給屬性。 paper-input返回從下面的輸入元素返回的值 - 該值始終是一個字符串。 – jptknta

回答

0

嘗試設置默認value爲0,並使用pattern輸入驗證:

<dom-module id="number-input"> 
<template> 
    <paper-input type="number" label="amount" value="{{amount}}" pattern="\d+\.?\d*"></paper-input> 
</template> 
<script> 
    Polymer({ 
     is: "number-input", 
     properties: { 
      amount: { 
       type: Number, 
       value:0 
      } 
     } 
    }); 
</script> 

0

您需要直接使用普通的輸入字段,並指定爲=「鐵輸入」和type =」數」。 type屬性是最終讓你獲得你想要的號碼字段的東西。其他數字輸入屬性如「min」也應該起作用。

您如由聚合物紙輸入容器documentation描述添加標籤,驗證器,和錯誤信息,解決這一問題。