尝试在 paper-date-picker 中设置日期时超出最大调用堆栈
2016-03-15
4305
使用 https://github.com/bendavis78/paper-date-picker (基于 moment.js) 我试图将日期(可选)设置为未来 offset 个月。
元素:
<paper-date-picker date="{{date}}"></paper-date-picker>
以下属性有效:
properties: {
date: {
type: Date
}
}
但这会使控制台充斥着“Uncaught RangeError:超出最大调用堆栈大小。”来自polymer:1258 &polymer-mini:964
properties: {
date: {
type: Date,
value: function() {
var myDate = new Date();
var offset = this.attributes.offset ? parseInt(this.attributes.offset.value) : 0;
myDate.setMonth(myDate.getMonth() + offset);
return myDate;
}
}
}
日期转换是什么似乎并不重要,如果“value”块存在,它就会失败。 记录函数中的值显示了上述解析日期,正如我所期望的那样,但我想我的期望与组件不同?
有人能发现我哪里出错了吗?
2个回答
您需要设置日历对象的日期,而不是日期选择器对象的日期,例如
this.$.datepicker-id.$.calendar.date = new Date();
这在重置选择器的日期方面是有效的,但实际上我后来遇到了另一个问题,与无法在关闭对话框后重新选择我之前选择的相同日期有关。我不得不删除
calendar._updateSelection
中的逻辑,以免将
selected.width
设置为
0px
。
user6150843
2016-04-03
我可以通过插入
new Date()
来重现错误(如控制台中报告的那样):
<paper-date-picker date="Tue Mar 15 2016 17:32:36 GMT+0000 (GMT Standard Time)"></paper-date-picker>
因此,即使这是一个有效的日期时间,我猜日期选择器出于某种原因对
myDate
的格式不满意。我认为您应该尝试将该日期转换为
mm/dd/yyyy
格式的字符串。作为快速概念验证,请尝试:
properties: {
date: {
type: Date,
value: function() {
return '03/15/2016';
}
}
}
Lesley
2016-03-15