我已经更新了 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 月 1 日起,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”作为日期格式,所以在谷歌搜索后我通过评论失败的部分解决了这个问题....:
.....
{
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 语言环境 js。
最佳答案
升级到 Angular 1.4.9 后,我遇到了同样的问题。我需要升级 Angular Locale ( https://code.angularjs.org/1.4.8/i18n/angular-locale_es-es.js ),错误已解决。
关于javascript - Angular 语言环境中的 ERANAME 和 ERAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34840240/