【发布时间】:2019-01-07 08:13:11
【问题描述】:
我决定下载所有外部 CSS 和 JavaScript 文件,而不是依赖 CDN。然而,在我这样做之后,我遇到了 daterangepicker.js 插件的以下错误:
TypeError: t 未定义
我研究了这个错误,我遇到的所有问题都表明 moment.js 要么根本没有被引用,要么在 daterangepicker.js 文件之后被引用。但是,我的脚本是这样定义的:
<script src="js/jquery.min.js"></script>
<script src="js/popper.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.circliful.min.js"></script>
<script src="js/loader.js"></script>
<script src="js/moment.js"></script>
<script src="js/jquery.daterangepicker.min.js"></script>
我还直接从源网站下载 JavaScript 文件,而不是从托管在某处的 CDN:
我不明白是什么导致了这个问题,我完全不知道如何解决这个问题。更令人沮丧的是,如果我尝试像以前一样切换回使用 CDN,错误仍然存在。
更新
应Tyler Roper的要求,下面是相关的JS代码:
// Setup the Agency Report date-picker
$('#date_range').dateRangePicker({
autoClose: true,
format: 'MMMM Do YYYY',
showShortcuts: true,
customShortcuts: [
{
name: 'this week',
dates : function() {
var start = moment().day(0).toDate();
var end = moment().day(6).toDate();
return [start,end];
}
},
{
name: 'this month',
dates : function() {
var start = moment().startOf('month').toDate();
var end = moment().endOf('month').toDate();
return [start,end];
}
},
{
name: 'this year',
dates : function() {
var start = moment().startOf('year').toDate();
var end = moment().endOf('year').toDate();
return [start,end];
}
}]
}).data('dateRangePicker').setDateRange(moment().startOf('year').toDate(), moment().toDate());
【问题讨论】:
-
“更令人沮丧的是,如果我像以前一样尝试切换回使用 CDN,错误仍然存在。” - 这会让我相信问题出在'与您的包含无关,但很难确定。您是否将文件包含在头部或正文中?您能否发布相关的 JS 代码并让我们知道您将其包含在哪里?
-
@TylerRoper - 我觉得很愚蠢......我更改了 dateRangePicker 引用的 ID 的值,却忘记在 JS 代码中反映该更改。我希望这个错误更相关。
-
那么这是否解决了您的问题?几个小时前,我已经把头撞在桌子上,结果发现输入问题或向同事解释问题会在几秒钟内得到(有时是显而易见的)答案。所以不用担心 - 它肯定发生在我们每个人身上!
-
是的,这就是修复它的原因。我刚刚花了大约 3 个小时试图找出这个问题,只是因为它是一个错字。
-
编码不是很好吗?其中许多插件让这些情况陷入困境,直到它们最终吐出一个错误,而且经常炸毁的实际线路如此之深,以至于错误几乎毫无用处。很高兴你解决了 - 祝你好运!