加载js代码的问题
issue to load the js code
我正在处理 angularjs 应用程序。我想显示日期范围选择器,以便用户可以 select 来自单个日期选择器的日期范围(开始和结束日期)。
加载日期选择器时遇到问题。请找到演示 here
在控制台中没有显示任何错误,当我点击“选择日期”字段时没有显示日期选择器。
js代码:
var cb = function(start, end, label) {
console.log(start.toISOString(), end.toISOString(), label);
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
console.log("Callback has fired: [" + start.format('MMMM D, YYYY') + " to " + end.format('MMMM D, YYYY') + ", label = " + label + "]");
}
var optionSet1 = {
startDate: moment().subtract(1, 'days'),
endDate: moment().subtract(1, 'days'),
minDate: '08/01/2014',
maxDate: '12/31/2017',
dateLimit: {
days: 60
},
showDropdowns: true,
showWeekNumbers: true,
timePicker: false,
timePickerIncrement: 1,
timePicker12Hour: true,
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
opens: 'left',
buttonClasses: ['btn btn-default'],
applyClass: 'btn-small btn-primary',
cancelClass: 'btn-small',
format: 'MM/DD/YYYY',
separator: ' to ',
locale: {
applyLabel: 'Submit',
cancelLabel: 'Clear',
fromLabel: 'From',
toLabel: 'To',
customRangeLabel: 'Custom',
daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
firstDay: 1
}
};
$('#reportrange span').html(moment().subtract(1, 'days').format('MMMM D, YYYY') + ' - ' + moment().subtract(1, 'days').format('MMMM D, YYYY'));
$('#reportrange').daterangepicker(optionSet1, cb);
$('#reportrange').on('show.daterangepicker', function() {
alert("show event fired");
console.log("show event fired");
});
$('#reportrange').on('hide.daterangepicker', function() {
alert("hide event fired");
console.log("hide event fired");
});
$('#reportrange').on('apply.daterangepicker', function(ev, picker) {
console.log("apply event fired, start/end dates are " + picker.startDate.format('MMMM D, YYYY') + " to " + picker.endDate.format('MMMM D, YYYY'));
});
$('#reportrange').on('cancel.daterangepicker', function(ev, picker) {
console.log("cancel event fired");
});
html代码:
Choose Date : <input id="reportrange">
我很难跟踪问题,我需要导入任何文件吗?我已经关注了这个 link。任何建议都是 helpful.Its 而不是 loading/triggering 以下事件:
$('#reportrange').on('show.daterangepicker', function() {
alert("show event fired");
console.log("show event fired");
});
我会参考你提供的代码片段,因为这里提供的代码有点不清楚。您应该将 <script type="text/javascript" src="app.js"></script>
标签移到输入元素之后(</body>
标签之前)。问题是您的 javascript 加载得太早并且没有要绑定的输入(执行后它不知道有任何输入)。在输入后移动它意味着代码将在输入初始化后执行,因此它将能够绑定到它。
这是您的示例:fixed code snipped
我正在处理 angularjs 应用程序。我想显示日期范围选择器,以便用户可以 select 来自单个日期选择器的日期范围(开始和结束日期)。 加载日期选择器时遇到问题。请找到演示 here
在控制台中没有显示任何错误,当我点击“选择日期”字段时没有显示日期选择器。
js代码:
var cb = function(start, end, label) {
console.log(start.toISOString(), end.toISOString(), label);
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
console.log("Callback has fired: [" + start.format('MMMM D, YYYY') + " to " + end.format('MMMM D, YYYY') + ", label = " + label + "]");
}
var optionSet1 = {
startDate: moment().subtract(1, 'days'),
endDate: moment().subtract(1, 'days'),
minDate: '08/01/2014',
maxDate: '12/31/2017',
dateLimit: {
days: 60
},
showDropdowns: true,
showWeekNumbers: true,
timePicker: false,
timePickerIncrement: 1,
timePicker12Hour: true,
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
opens: 'left',
buttonClasses: ['btn btn-default'],
applyClass: 'btn-small btn-primary',
cancelClass: 'btn-small',
format: 'MM/DD/YYYY',
separator: ' to ',
locale: {
applyLabel: 'Submit',
cancelLabel: 'Clear',
fromLabel: 'From',
toLabel: 'To',
customRangeLabel: 'Custom',
daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
firstDay: 1
}
};
$('#reportrange span').html(moment().subtract(1, 'days').format('MMMM D, YYYY') + ' - ' + moment().subtract(1, 'days').format('MMMM D, YYYY'));
$('#reportrange').daterangepicker(optionSet1, cb);
$('#reportrange').on('show.daterangepicker', function() {
alert("show event fired");
console.log("show event fired");
});
$('#reportrange').on('hide.daterangepicker', function() {
alert("hide event fired");
console.log("hide event fired");
});
$('#reportrange').on('apply.daterangepicker', function(ev, picker) {
console.log("apply event fired, start/end dates are " + picker.startDate.format('MMMM D, YYYY') + " to " + picker.endDate.format('MMMM D, YYYY'));
});
$('#reportrange').on('cancel.daterangepicker', function(ev, picker) {
console.log("cancel event fired");
});
html代码:
Choose Date : <input id="reportrange">
我很难跟踪问题,我需要导入任何文件吗?我已经关注了这个 link。任何建议都是 helpful.Its 而不是 loading/triggering 以下事件:
$('#reportrange').on('show.daterangepicker', function() {
alert("show event fired");
console.log("show event fired");
});
我会参考你提供的代码片段,因为这里提供的代码有点不清楚。您应该将 <script type="text/javascript" src="app.js"></script>
标签移到输入元素之后(</body>
标签之前)。问题是您的 javascript 加载得太早并且没有要绑定的输入(执行后它不知道有任何输入)。在输入后移动它意味着代码将在输入初始化后执行,因此它将能够绑定到它。
这是您的示例:fixed code snipped