1

私はAngular UIでarshawによる優れたfullcalendarを使用していますが、現在、JSONフィードとしてフェッチされたときにレンダリングされない拡張形式のeventSourceオブジェクトに問題があります。

データは、コントローラーで次のコードを使用してフェッチされます。

$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 がイベント ソースを拡張形式で返すことにしました。これは、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 フィードとして返される場合、イベント ソースを拡張された形で消費することはできませんか?

4

1 に答える 1

0

API から返される eventSource は、拡張フォーム オプションを使用する場所ではなく、eventSource として使用されるイベント関数で使用される可能性があります。

ドキュメントには、API の呼び出しに使用される Json オブジェクト内で拡張フォームを使用する必要があると記載されています。

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

API がイベントの追加オプションを返しすぎる場合は、それぞれを個別に設定する必要があります。

現在、この投稿では、拡張オプションが呼び出される唯一の場所は、返された API データからのものです。

これは逆であるべきだと思います。また、カレンダーは、データを要求する前に、拡張フォームについて認識している必要があります。これは、サーバーが余分なオプションを返す必要がなく、カレンダーがフィードと拡張オプションによってイベント オブジェクトを整理することを意味します。

プランクを投稿できれば、これを成功させることができます。

于 2013-03-16T07:09:00.843 に答える