我有一个由两个元素组成的数组:第一个元素是字符串,第二个元素是自历元以来的整数毫秒。我可以显示毫秒数的整数,但是尝试获取日期的语言环境字符串时出现错误。
导致时间戳显示为整数的两行代码是:
<div class='timestamp' ng-bind='monologues[session][1]'></div>
<div class='timestamp' ng-bind='new Date(monologues[session][1]).toLocaleString()'></div>
Chrome错误控制台提供:
Error: [$parse:syntax] http://errors.angularjs.org/1.3.0-beta.3/$parse/syntax?p0=Date&p1=is%20an%20unexpected%20token&p2=5&p3=new%20Date(monologues%5Bsession%5D%5B1%5D).toLocaleString()&p4=Date(monologues%5Bsession%5D%5B1%5D).toLocaleString()
at Error (native)
at http://localhost:8000/media/js/angular.min.js:6:456
at $a.throwError (http://localhost:8000/media/js/angular.min.js:164:422)
at $a.parse (http://localhost:8000/media/js/angular.min.js:163:299)
at http://localhost:8000/media/js/angular.min.js:96:31
at k (http://localhost:8000/media/js/angular.min.js:102:163)
at g.$watch (http://localhost:8000/media/js/angular.min.js:103:321)
at http://localhost:8000/media/js/angular.min.js:188:247
at H (http://localhost:8000/media/js/angular.min.js:52:492)
at g (http://localhost:8000/media/js/angular.min.js:46:28) <div class="timestamp ng-binding" ng-bind="new Date(monologues[session][1]).toLocaleString()">
首先,我是否通过尝试绑定到JavaScript表达式来计算要显示的内容来正确地处理问题?
其次,我应该如何处理服务器(根据我的选择)所提供的整数毫秒数的方法,并且我想为用户显示相应的格式化语言环境时间?
您可以在控制器中进行设置:
$scope.$watch('monologues', function() {
$scope.newProp = new Date($scope.monologues[$scope.session][1]).toLocaleString();
});
然后在您的视图中使用它:
<div class='timestamp' ng-bind='newProp'></div>
您也可以为此创建一个过滤器,如下所示:
myApp.filter('toLocale', function () {
return function (item) {
return new Date(item).toLocaleString()
};
});
并在视图上使用它:
<div class='timestamp'>{{ monologues[session][1] | toLocale }}</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句