从angularjs ng-repeat获取日期

时间:2017-06-10 19:36:44

标签: angularjs

我有一个AngularJS 1.X应用程序,其中包含从.json文件中检索的日期字段。日期正在从字符串转换为日期对象以订购列表,但我需要捕获"月"分组的日期的一部分,用于单独显示,但无法弄清楚。

这是我的控制器和HTML:

角度控制器:

(function () {

    "use strict";

    angular.module("xxyyzz")
        .controller("displayEventCtrl", displayEventCtrl);

    function displayEventCtrl($http) {
        var model = this;
        model.header = "Upcoming Events";
        model.events = [];
        $http.get("/App/Data/eventCalendar.json")
            .then(function (response) {
                model.events = response.data;
                console.log(model.events);
            });
        model.sortDate = function (event) {
            var date = new Date(event.date);
            return date;
        }
    }
})();

HTML:

    <div ng-controller="displayEventCtrl as model">
    <h3><i class="fa fa-calendar"></i> {{model.header}}</h3>
    <div class="list-group">
        <a href="#" class="list-group-item" ng-repeat="event in model.events | orderBy : -model.sortDate : true track by $index">
            <div class="list-group-item-heading">
                <h4>{{event.title}}</h4>
            </div>
            <p class="list-group-item-text">
                Tuctus placerat scelerisque.
            </p>
            <div class="row">
                <div class="col-xs-6">
                    <span class="small">{{event.location}}</span>
                </div>
                <div class="col-xs-6">
                    <span class="small pull-right">
                        {{event.startTime}} - {{event.endTime}}
                    </span>
                </div>
            </div>
            <div class="row">
                <div class="col-xs-9">
                    <span class="small">{{event.city}}, {{event.state}}</span>
                </div>
                <div class="col-xs-3">
                    <span class="small pull-right">{{event.date}}</span>
                    <div class="clearfix"></div>
                </div>
            </div>
        </a>
    </div>
</div>

JSON示例:`

    [
  {
    "id": 1,
    "title": "Christmas Parade",
    "date": "12/25/2017",
    "city": "Dallas",
    "state": "TX",
    "location": "Galleria Mall",
    "startTime": "11:00",
    "endTime": "15:00"
  },
  {
    "id": 2,
    "title": "Thanksgiving Parade",
    "date": "11/23/2017",
    "city": "Denver",
    "state": "CO",
    "location": "Mile High Stadium",
    "startTime": "11:00",
    "endTime": "15:00"
  },
  {
    "id": 3,
    "title": "Halloween Parade",
    "date": "10/31/2017",
    "city": "Sleepy Hollow",
    "state": "NY",
    "location": "Ichabod Crane House",
    "startTime": "19:00",
    "endTime": "21:00"
  },
  {
    "id": 4,
    "title": "Independence Day Fireworks",
    "date": "07/04/2017",
    "city": "Washington",
    "state": "DC",
    "location": "National Mall",
    "startTime": "11:00",
    "endTime": "15:00"
  }
]

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以使用命名时刻的js api。注入时刻作为依赖。您可以使用时刻在任何您想要的甲酸盐中获取日期。

  

时刻().get(&#39;月&#39;);

答案 1 :(得分:0)

要获得月份,请使用getMonth() function

&#13;
&#13;
ng-repeat
&#13;
&#13;
&#13;

  

我的问题是我试图从{{event.date}}中的数组中提取日期。所以我不能像上面那样声明变量,因为它是返回数组angular.module("app",[]) .filter("toDate", function() { return function(data) { return new Date(data); }; }) .run(function($rootScope) { var vm = $rootScope; vm.Xmas95 = 'December 25, 1995 23:15:30'; })的一部分。我需要知道的是如何从嵌套项中获取该日期部分。

使用custom filter将文本数据转换为Date object

&#13;
&#13;
<script src="//unpkg.com/angular/angular.js"></script>
<div ng-app="app">
   Month number = {{Xmas95 | toDate | date: 'MM'}}
</div>
&#13;
ionic serve
&#13;
&#13;
&#13;

有关详细信息,请参阅