簡體   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