【发布时间】:2016-01-17 15:46:03
【问题描述】:
我已经更新了 ASP.NET 4.5 Angular 项目中的 Nuget 包: ui-bootstrap-tpls.js 从版本 0.14.3 - 2015-10-23(更新于 2015-12-01)更改为 1.0.3 - 2016-01-11;自 2015-12-01 以来,Angular 为 1.4.8。
使用新的 ui-bootstrap-tpls.js 在输入文本上使用 uib-datepicker-popup 属性时,我遇到了“未定义的连接”js 错误;经过一些调试,我发现问题出在第 688 行,formatCodeToRegex 变量的分配。
在这个地方管理格式化的“G”字符(在 2015 年 10 月版本中未完成),其中 $locale.DATETIME_FORMATS 是一个有效对象,但未定义 $locale.DATETIME_FORMATS.ERANAMES 和 $locale.DATETIME_FORMATS .ERAS,所以 $locale.DATETIME_FORMATS.ERANAMES.join 失败。
我不使用“G”作为日期格式,所以在 Google 上进行了一些搜索后,我通过评论失败的部分解决了这个问题......:
.....
{
key: 'ww',
regex: '[0-4][0-9]|5[0-3]'
},
{
key: 'w',
regex: '[0-9]|[1-4][0-9]|5[0-3]'
}//,
//{
// key: 'GGGG',
// regex: $locale.DATETIME_FORMATS.ERANAMES.join('|').replace(/\s/g, '\\s')
//},
//{
// key: 'GGG',
// regex: $locale.DATETIME_FORMATS.ERAS.join('|')
//},
//{
// key: 'GG',
// regex: $locale.DATETIME_FORMATS.ERAS.join('|')
//},
//{
// key: 'G',
// regex: $locale.DATETIME_FORMATS.ERAS.join('|')
//}
但显然不是最好的解决方案。 我搜索了很多,但我不明白 DATETIME_FORMATS.ERANAMES 和 ERA 未定义是如何工作的。
在本地化文件中,例如 http://code.angularjs.org/1.4.8/i18n/angular-locale_en-us.js 声明了这些值,我在脚本标签中调用了以前的 angular locale js。
【问题讨论】:
标签: javascript angularjs twitter-bootstrap