首页 文章

带有JSON feed的Fullcalendar以扩展形式返回eventSource

提问于
浏览
1

我正在使用带有Angular UI的arshaw优秀的fullcalendar,现在我遇到了一个问题,即扩展形式的eventSource对象在获取为JSON提要时不呈现 .

使用控制器中的以下代码获取数据:

$scope.events = [   
  '/api/v1/users/104/events?format=cal&type=9',
  '/api/v1/users/104/events?format=cal&type=10'
];
$scope.eventSources = $scope.events;

当JSON提要返回带有事件对象的数组时,它实际上有效:

// returned by - /api/v1/users/104/events?format=cal&type=9
[
  {
    url: "/#/events/86893",
    start: "2013-03-15",
    title: ": Event - 86893"
  },
  {
    url: "/#/events/31348",
    start: "2013-03-27T09:30Z",
    title: "Event - 31348"
  }
],
// returned by - /api/v1/users/104/events?format=cal&type=10
[
  {
    url: "/#/events/86899",
    start: "2013-03-25",
    title: ": Event - 86899"
  },
  {
    url: "/#/events/31349",
    start: "2013-03-17T09:30Z",
    title: "Event - 31349"
  }
]

但是,我想指定一些选项以及事件数据,例如不同JSON源的不同颜色 . 因此我决定使用API在extended form中返回事件源 . 这是API返回的内容 .

// returned by - /api/v1/users/104/events?format=cal&type=9
{
  events: [
    {
      url: "/#/events/86893",
      start: "2013-03-15",
      title: "Event - 86893"
    },
    {
      url: "/#/events/31348",
      start: "2013-03-27T09:30Z",
      title: "Event - 31348"
    }
  ],
  color: "#ff9900",
  allDayDefault: false,
  ignoreTimezone: true
},
// returned by - /api/v1/users/104/events?format=cal&type=10
{
  events: [
    {
      url: "/#/events/86899",
      start: "2013-03-25",
      title: "Event - 86899"
    },
    {
      url: "/#/events/31349",
      start: "2013-03-17T09:30Z",
      title: "Event - 31349"
    }
  ],
  color: "#3366FF",
  allDayDefault: false,
  ignoreTimezone: true
}

不幸的是,当以JSON格式提取时,不会呈现此格式 . 在获取扩展格式时,我将eventSources赋值更改为如下所示:

$scope.eventSources = [ $scope.events ];

如果我将原始JSON响应(使用扩展形式的事件源)从API直接剪切并粘贴到eventSources方法中,它就可以工作 . 当它作为JSON提要返回时,是否有可能以扩展形式使用事件源?

1 回答

  • 0

    可能是从API返回的eventSource不是应该使用扩展表单选项的地方,而是在用作eventSource的事件函数中 .

    文档声明扩展表单应该在用于调用API的Json对象中使用 .

    http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/

    如果API也返回了事件的额外选项,那么它需要单独设置每个选项 .

    目前在这篇文章中,我看到调用扩展选项的唯一位置来自返回的api数据 .

    我认为这应该是另一种方式 . 并且日历应该在它甚至请求数据之前知道扩展形式 . 这意味着服务器不需要返回任何额外的选项,日历将通过feed和扩展选项组织事件对象 .

    如果你可以张贴一个插件,那么我们可以指出这一点 .

相关问题