Polymer 如何将值传递给需要字符串的纸张日期选择器属性?

Polymer 如何将值传递给需要字符串的纸张日期选择器属性?,polymer,Polymer,我试图在我的元素中使用。 如何将值传递给图纸日期选择器的“日期”属性 <!-- This is working: --> <paper-date-picker date="2000/1/21"></paper-date-picker> <!-- This is NOT working: Inside <my-birthdate birthdate="1977/1/2"></my-birthdate> --> <

我试图在我的元素中使用。 如何将值传递给图纸日期选择器的“日期”属性

<!-- This is working: -->
<paper-date-picker date="2000/1/21"></paper-date-picker>


 <!-- This is NOT working: 
 Inside <my-birthdate birthdate="1977/1/2"></my-birthdate> -->
<paper-date-picker date='{{birthdate}}'></paper-date-picker>

下面是一个例子。

在查看了日期选择器的源代码后,它不能很好地处理文本。基本上,您必须添加一个观察者,将值转换为日期。另外,从选择器中删除生日。这里有一个简单的例子

<polymer-element name="my-birthdate" attributes="birthdate">
    <template>
        birthdate = {{birthdate}}
        <paper-date-picker id="picker"></paper-date-picker>
    </template>
    <script>
        Polymer("my-birthdate", {
            birthdateChanged: function (oldValue, newValue) {
                if (newValue)
                    this.$.picker.date = new Date(newValue);
            }
        });
    </script>
</polymer-element>

请记住,我没有错误检查新值。。。您必须这样做。

属性中的值始终是字符串。如果要将属性字符串转换为其他类型,则必须提示所需的类型

我们希望生日是一个日期。如果我们这样更改定义:

<script>
  Polymer({
    birthdate: new Date()
  });
</script>
然后Polymer知道如何将1977/1/2转换为日期对象

请记住,此处的绑定与上面的不同:

在本例中,我们要求Polymer将paper-date-picker.date属性直接绑定到birthdate属性。我们不需要遍历属性,因为这样我们就必须转换为字符串,然后再转换回来,这会大大降低速度

纸质日期选择器不支持使用生日中的字符串值生成日期。因此,当直接使用纸质日期选择器而不是通过属性时,生日必须是日期值