如何在 Meteor Blaze 中使用 js 日期选择器
2016-10-27
115
我想在我的 Metrace 应用中使用此数据选择器 https://github.com/richsilv/Pikaday/ 。
单击我的输入字段后,它应该显示此数据选择器。它只工作一次,之后我收到错误,我相信这是一个无限循环:
Uncaught RangeError: Maximum call stack size exceeded.
和大量来自的 console.log 消息:
console.log(this.getMoment().format('YYYY-MM-DD'));
我做错了什么,如何正确使用这个数据选择器?
html
{{#each showDates}}
<li>
<input class="datapicker" type="text" value={{date}} id="data{{_id}}" />
</li>
{{each}}
js
'click .datapicker': function(e) {
$(document).ready(function() {
var picker = new Pikaday({
field: document.getElementById(e.target.id),
format: 'YYYY-MM-DD',
onSelect: function() {
console.log(this.getMoment().format('YYYY-MM-DD'));
}
});
});
},
编辑:也许是一个重要的信息:我需要在输入字段中单击两次才能看到这个数据选择器。然后,由于这个错误/无限循环,我必须终止我的浏览器进程或重新启动我的流星。
2个回答
我认为你没有定位正确的 ID,难道不应该是这个:
field: document.getElementById(e.target.id),
是这个吗?
field: document.getElementById(`data${e.target.id}`),
Flávio Carvalho
2016-10-27
在
Template.templateName.onRendered(function{
//fires when the template is rendered
//initialize whatever here. here is a pickadate example
$('.elementClass').pickadate({
selectMonths: true,
selectYears: true,
min: new Date(),
closeOnSelect: true,
onSet: function(context) {
var selected = moment(context.select).format('YYYY-MM-DD'));
//do something with selected
},
onClose: function() {
//BONUS: this will prevent a bug/issue
//when you go to another tab or page and come back
//it fires the pickadate that was closed again.
//this might be a bug in materializeCSS only
$(document.activeElement).blur();
}
});
});
中启动选择器(或其他需要初始化的内容)
Luna
2016-10-27