Fullcalendar:如何从json url渲染时间 - 类型错误hasTime()

时间:2016-09-30 15:58:21

标签: angularjs json fullcalendar

如何从json url(/ comments)在fullcalendar上渲染时间?它显示了“对象对象”,其中应该显示时间。从json url中抽出时间的正确方法是什么?

来自网址的

json示例

{"Title": "qwerty", "Description": "asdf", "IsFullDay": null, "EndAt": "2016-09-21T09:10:15.549000", "StartAt": "2016-09-21T09:10:15.549000"}

fullcalendar

enter image description here

来自“fullcalendar.min”的

错误

enter image description here

enter image description here

controller.js

function populate() {
        clearCalendar();
        $http.get('/comments', {
            cache: true,
            params: {},
        }).then(function (data) {
            $scope.projects.slice(0, $scope.projects.length);
            angular.forEach(data.data, function (value) {
                $scope.projects.push({
                    // id : value.ProjectID,
                    title: value.Title,
                    description: value.Description,
                    start: new Date(value.StartAt),
                    end: new Date(value.EndAt),
                    allDay: value.IsFullDay,
                    stick: true
                });
            });
        });
}

//configure calendar

$scope.uiConfig = {
    calendar: {
         eventSources:{
              url: '/comments',
         },
         height: 500,
         editable: true,
         displayEventTime: true,
         header: {
            left: 'month, agendaWeek, agendaDay',
            center: 'title',
            right: 'today prev,next'
         },
         timeFormat : {
            month: ' ', //for hide on month view
            agenda: 'h:mm: t'
         },
        selectable: true,
        selectHelper: true,
        select: function(start, end){
            var fromDate = moment(start).format('DD/MM/YYYY LT');
            var endDate  = moment(end).format('DD/MM/YYYY LT');

            $scope.NewProject = {
                ProjectID : 0,
                StartAt : fromDate,
                EndAt : endDate,
                IsFullDay : false,
                Title : '',
                Description: ''
            }
            $scope.ShowModal()
        },

2 个答案:

答案 0 :(得分:0)

在你的populate函数中,你的开始和结束日期是使用Javascript Date对象进行的,它不能用于fullCalendar,它需要一个时间日期对象。更改以下

start: new Date(value.StartAt),
end: new Date(value.EndAt),

到这个

start: moment(value.StartAt),
end: moment(value.EndAt),

答案 1 :(得分:0)

在这种情况下的解决方案只是(非客体化)改变

timeFormat : {
        month: ' ', //for hide on month view
        agenda: 'h:mm: t'
     },

timeFormat : 'h:mm: t'

或您想要的任何格式或只是完全删除timeFormat(将自动解析为默认值)