Polymer 使自定义聚合物元件不静态工作

Polymer 使自定义聚合物元件不静态工作,polymer,Polymer,我想用聚合物做一个约会挑选器。在一个页面上,我想放置其中两个,但它们的行为是静态的。我的意思是,当我点击下个月的按钮时,它会同时改变 我通常不使用这样的元素,所以我从未考虑过一个元素的多个实例的行为 如何使元素的行为类似于实例对象而不是静态对象 <!-- I'm omitting the style and some script for brevity --> <polymer-element name="date-picker" attributes="chosenDate

我想用聚合物做一个约会挑选器。在一个页面上,我想放置其中两个,但它们的行为是静态的。我的意思是,当我点击下个月的按钮时,它会同时改变

我通常不使用这样的元素,所以我从未考虑过一个元素的多个实例的行为

如何使元素的行为类似于实例对象而不是静态对象

<!-- I'm omitting the style and some script for brevity -->
<polymer-element name="date-picker" attributes="chosenDate">
<template>
<div class="picker" vertical layout>
    <div class="select" horizontal justified layout>
        <div>
            <core-icon icon="chevron-left" on-tap="{{lastMonth}}"></core-icon>
        </div>
        <div>{{monthName}} {{date}}</div>
        <div>
            <core-icon icon="chevron-right" on-tap="{{nextMonth}}"></core-icon>
        </div>
    </div>

    <template repeat="{{w in calendar}}">
                <div horizontal layout>
            <template repeat="{{d in w}}">
                    <div class="dateBox {{ date == d.day && d.inMonth ? 'today' : '' }} " flex>{{d.day}}</div>
            </template>
                </div>
    </template>

</div>


</template>
<script>
Polymer('date-picker', {
date : null,
month: null,
monthName: '',
calendar : [],
update: function() {
   /* code that figures out weeks/days */
},
/* these cause all instances of date-picker to change month */
lastMonth : function() {
    this.month -= 1;
    this.update();
},
nextMonth : function() {
    this.month += 1;
    this.update();
}
});
</script>
</polymer-element>

{{monthName}{{date}
{{d.day}
聚合物(“日期选择器”{
日期:空,
月份:空,
monthName:“,
日历:[],
更新:函数(){
/*计算周/天的代码*/
},
/*这会导致日期选择器的所有实例每月更改*/
上月:函数(){
本月-=1;
这个.update();
},
下个月:函数(){
本月+=1;
这个.update();
}
});
全码笔
这两个元素之间共享的是
日历
数组。由于您在elements原型上定义了默认值
[]
,因此空数组的这个实例对于所有元素实例都是通用的


因此,对于数组和对象属性,应该在
created()
回调中初始化它们。然后这两个元素实例得到它们自己的空
日历
数组。

这两个元素之间共享的是
日历
数组。由于您在elements原型上定义了默认值
[]
,因此空数组的这个实例对于所有元素实例都是通用的


因此,对于数组和对象属性,应该在
created()
回调中初始化它们。然后这两个元素实例得到它们自己的空
日历
数组。

这两个元素之间共享的是
日历
数组。由于您在elements原型上定义了默认值
[]
,因此空数组的这个实例对于所有元素实例都是通用的


因此,对于数组和对象属性,应该在
created()
回调中初始化它们。然后这两个元素实例得到它们自己的空
日历
数组。

这两个元素之间共享的是
日历
数组。由于您在elements原型上定义了默认值
[]
,因此空数组的这个实例对于所有元素实例都是通用的


因此,对于数组和对象属性,应该在
created()
回调中初始化它们。然后这两个元素实例将得到它们自己的空
日历
数组。

如果将元素实例放在这样的页面上
,则会得到两个彼此完全独立的实例(
指的是一个或另一个)。例如,如果我添加
this.monthName=this.month
到您的
update()
函数,那么这对我来说很好。也许你可以把一些完整的代码放在一个代码笔里(或者任何你喜欢的地方),显示出错误的行为。我的实际日期代码真糟糕。但是,我的小毛病应该是显而易见的。谢谢我完全忽略了罪魁祸首是
日历:[
赋值。如果您在这样的页面上放置元素的实例
,您会得到两个完全独立的实例(
指的是一个或另一个)。例如,如果我添加
this.monthName=this.month
到您的
update()
函数,那么这对我来说很好。也许你可以把一些完整的代码放在一个代码笔里(或者任何你喜欢的地方),显示出错误的行为。我的实际日期代码真糟糕。但是,我的小毛病应该是显而易见的。谢谢我完全忽略了罪魁祸首是
日历:[
赋值。如果您在这样的页面上放置元素的实例
,您会得到两个完全独立的实例(
指的是一个或另一个)。例如,如果我添加
this.monthName=this.month
到您的
update()
函数,那么这对我来说很好。也许你可以把一些完整的代码放在一个代码笔里(或者任何你喜欢的地方),显示出错误的行为。我的实际日期代码真糟糕。但是,我的小毛病应该是显而易见的。谢谢我完全忽略了罪魁祸首是
日历:[
赋值。如果您在这样的页面上放置元素的实例
,您会得到两个完全独立的实例(
指的是一个或另一个)。例如,如果我添加
this.monthName=this.month
到您的
update()
函数,那么这对我来说很好。也许你可以把一些完整的代码放在一个代码笔里(或者任何你喜欢的地方),显示出错误的行为。我的实际日期代码真糟糕。但是,我的小毛病应该是显而易见的。谢谢我完全忽略了罪魁祸首是
日历:[
作业。