我刚刚在我的 Ember.js 应用程序中将表单 moment@2.1.0 更新为 moment@2.7.0,现在当我在控制台中输入 moment() 或将其包含在脚本。
在文档中我看到“从 2.4.0 开始,不推荐使用全局导出的 moment 对象。”我认为这是这里的问题,但我不确定如何在 ember 中全局设置 moment,以便当前代码库中对 moment() 的所有引用都不会被破坏。
我已经尝试将我们正在执行 require('moment') 的行更新为 var moment = require('moment') 但它具有相同的结果。即使我直接在 var moment = ... 行之后放置一个调试器,然后在控制台中输入 moment(),我仍然会得到那个 moment 是未定义的。
最佳答案
你想要 Browser新文档的一部分。
所以...
<script src="moment.js"></script>
<script>
moment().format();
</script>
编辑
话虽如此,看起来这可能会给您带来同样的问题。
看起来像Moment.js试图鼓励您使用包管理器,以免用全局变量弄脏命名空间。
继续阅读 CommonJS和 AMD ,并尝试将其纳入您当前的堆栈。
你应该这样做:
var moment = require('moment');
moment().format();
但是为了使用require
,你需要一个像前面提到的那样的模块系统。
但是
显而易见的解决方法是回滚您的 Moment.js 版本,只要您不需要新功能即可。一个简单的时间/日期库的更新到底有多重要?
关于javascript - moment.js 时刻未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520828/