繁体   English   中英

在Angular视图中使用moment.js

[英]Using moment.js in an Angular view

我试图评估大括号{{}} moment()以显示日期:

{{ moment().date(timeslot.start.value.month)
           .month(timeslot.start.value.dayOfMonth - 1)
           .format("MMMM Do")
}}

但是,这没有呈现HTML。 都设置了monthdayOfMonth ,并且正确拉动了moment.js,因为如果我尝试console.log()某个日期,例如moment().date(6).month(6).format("MMMM Do")它将返回如预期的"July 6th"

我是否缺少明显的东西?

你有没有看过像角矩这样的角包裹器 就jQuery和Javascript库而言,使用包装器路线总是可以省去一些麻烦。

这是一个基于您的代码小例子。

<body ng-controller="MainCtrl">
  <p>Hello {{name}}!</p>
  <span>{{myDate| amUtc | amLocal | amDateFormat:'MMMM Do'}}</span>
</body>

在应用程序中,我将myDate分配给当前日期:

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

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.myDate = new Date();
});

尝试将值分配给控制器中的$ scope变量,然后将其用大括号括起来

在您的控制器中:

$scope.time = moment().date(timeslot.start.value.month)
       .month(timeslot.start.value.dayOfMonth - 1)
       .format("MMMM Do")

在您的html中:

{{time}}

基本上,只能通过双花括号或ng-bind在视图中访问附加到“ this”或“ $ scope”的内容。 您必须将其分配给视图附带的控制器范围。

将瞬间操作放到大括号中并不能很好地工作,因为我不认为Angular可以插值一个外部库及其方法,但是它可以做更简单的选择,如您所见。

moment在应用程序/ app.run.js的rootScope:

$rootScope.moment = $window.moment;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM