角度时刻 - 无法读取属性' utc'未定义的

时间:2014-10-29 23:33:09

标签: javascript angularjs momentjs

我正在尝试使用angular-moment的指令am-time-go,但我收到以下错误:

TypeError: Cannot read property 'utc' of undefined

我在像这样的简单控制器中使用它(在玉器中):

    span(am-time-ago="myItem.date")

我的约会工作正常,其格式如下:

2014-10-29T23:31:23Z

我也尝试过配置我的模块:

myApp.constant('angularMomentConfig', {
    preprocess: 'utc',
    timezone: 'Europe/Berlin'
});

但没有任何作用。这个问题源于哪里?

非常感谢

5 个答案:

答案 0 :(得分:12)

请参阅下面的工作示例。确保您已经引用了所有脚本,并且它们的顺序正确



var app = angular.module('app', ['angularMoment']);

app.constant('angularMomentConfig', {
  preprocess: 'utc',
  timezone: 'Europe/Berlin'
});

app.controller('firstCtrl', function($scope) {
  $scope.myItem = {
    date: "2014-10-29T23:31:23Z"
  };
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.3/moment.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-moment/0.8.2/angular-moment.js"></script>

<body ng-app="app">
  <div ng-controller="firstCtrl">


    <span am-time-ago="myItem.date"></span>
  </div>
</body>
&#13;
&#13;
&#13;

答案 1 :(得分:9)

我遇到了这个问题,直到我在angular-moment.js脚本标记之前移动了moment.js脚本标记。尝试按此顺序放置脚本标记...

<script src="/Scripts/moment.js"></script>
<script src="/Scripts/angular-moment.js"></script>

答案 2 :(得分:2)

显然,由于v2.4时刻不再是一个全局物​​体,因此每次角度时刻都会引起“未定义”,这是对时刻的引用。

我切换到v.2.3.1,它现在像魅力一样

答案 3 :(得分:0)

这显然是新momentjs的问题,其中moment不可用作全局变量。

对于那些使用nwjs的人来说,问题comment中的#194对我有效。

var app = angular.module('myapp', ['angularMoment']);
var moment_mod = require('moment');
app.constant('moment', moment_mod);

我还尝试了angular-moment的beta.4版本(在我的nwjs应用程序中),该版本传递警告以使用moment的npm模块(以便从一开始就可以使用全局矩体对象)

答案 4 :(得分:0)

对于那些使用ButtonGroup group = new ButtonGroup(); ... group.clearSelection(); 的人,我得到了所有模块:

nwjs