Polymer 聚合物纸输入装订始终为文本

Polymer 聚合物纸输入装订始终为文本,polymer,Polymer,我有以下聚合物元素: <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"> &l

我有以下聚合物元素:

<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>

聚合物({
是:“数字输入”,
特性:{
金额:{
类型:数字,
}
}
});
“amount”属性始终是字符串。即使我将属性定义为“数字”。我是错过了什么,还是这是正常的行为


Sander.

尝试将默认值
设置为0,并使用
模式
进行输入验证:

<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
}
}
});

您需要直接使用普通输入字段,并指定is=“iron input”和type=“number”。type属性最终为您获取要查找的数字字段。其他数字输入属性(如“min”)也应起作用


您可以添加标签、验证程序和错误消息,如聚合纸输入容器所述。

无论您将属性类型设置为什么,输入值始终是字符串。该值始终是字符串。但是,如果在普通html元素上设置输入类型,您将获得不同的用户界面,例如触摸设备上的数字键盘,而不是全键盘,并且输入自动限制为数字。为amount属性添加一个观察者,自己在观察者中执行字符串到数字的转换,并将结果分配回属性。纸张输入返回从参考底图输入元素返回的值-该值始终是字符串。@jptknta如果绑定到数字属性,为什么polymer不为您进行类型转换?!我不能说为什么它不能自动转换成一个数字。也许Polymer只是与现有的html输入元素行为相匹配。