使用https://github.com/bendavis78/paper-date-picker(基于moment.js) 我想在将来设置日期(可选) offset 。
元素:
<paper-date-picker date="{{date}}"></paper-date-picker>
以下属性有效:
properties: {
date: {
type: Date
}
}
但是这会使控制台充满&#34; Uncaught RangeError:超出最大调用堆栈大小。&#34;来自聚合物:1258&amp;聚合物迷你: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;
}
}
}
如果&#34;值&#34;那么日期变换是什么似乎并不重要。块在那里它失败了。 记录函数中的值会显示上述解析日期,但我猜我的期望与组件不同?
有人可以找到我出错的地方吗?
答案 0 :(得分:0)
我可以通过插入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';
}
}
}
答案 1 :(得分:0)
您需要设置日历对象的日期而不是日期选择器对象,例如this.$.datepicker-id.$.calendar.date = new Date();
这在重置选择器的日期方面起作用,但实际上我遇到了一个不同的问题,即无法重新选择关闭对话框后我之前选择的相同日期。我必须删除calendar._updateSelection
中的逻辑,才将selected.width
设置为0px
。