Fullcalendar json 多个来源
Fullcalendar json many sources
我正在使用 FullCalendar.js,顺便说一句,这太棒了。这次我发现了对 json 数据的操纵。
我的问题如下:
我有变量@missions 和@events。但是我不能在我的日历上同时调用和渲染。谁能帮我解决这个问题?
我已经试过了
1) 添加第二行像这样的好请求
$('#calendar').fullCalendar({
events: '/missions.json',
events: '/events.json'
})
2) 或者像这样向我的 json 文件添加第二个循环:
但此解决方案的 none 有效。有什么想法吗?
json.array! @missions do |mission|
date_format = '%Y-%m-%dT%H:%M:%S'
json.id mission.id
json.title mission.title
json.start mission.start.strftime(date_format)
json.end mission.end.strftime(date_format)
json.edit_url edit_mission_path(mission)
end
json.array! @events do |event|
date_format = '%Y-%m-%dT%H:%M:%S'
json.id event.id
json.title event.title
json.start event.start.strftime(date_format)
json.end event.end.strftime(date_format)
json.edit_url edit_event_path(event)
end
但此解决方案的 none 有效。有什么想法吗?
您的 fullCalendar 对象中只能有一个 "events" 键。
$('#calendar').fullCalendar({
events: '/events.json',
});
如果您希望它们都存在于同一个日历中,请将它们组合在控制器或 JS 中。在控制器中组合它们可能要容易得多。
这是基本的控制器实现方式:
def action
@missions = Mission.all
@events = Event.all
@all_events = @events + @missions
respond_to do |format|
format.json { render json: @all_events }
format.html
end
end
如果你想使用 jbuilder 文件,那么它可能看起来像这样:
missions = json.array! @missions do |mission|
date_format = '%Y-%m-%dT%H:%M:%S'
json.id mission.id
json.title mission.title
json.start mission.start.strftime(date_format)
json.end mission.end.strftime(date_format)
json.edit_url edit_mission_path(mission)
end
events = json.array! @events do |event|
date_format = '%Y-%m-%dT%H:%M:%S'
json.id event.id
json.title event.title
json.start event.start.strftime(date_format)
json.end event.end.strftime(date_format)
json.edit_url edit_event_path(event)
end
events + missions
注意添加仍然出现在底部。 IMO,转换最好留给助手和控制器操作,而 jbuilder 将它们混合到只是混淆的视图中。 jbuilder 应该主要用于渲染特定的 JSON。不是为了改变它,我们在这里做的。
我正在使用 FullCalendar.js,顺便说一句,这太棒了。这次我发现了对 json 数据的操纵。 我的问题如下: 我有变量@missions 和@events。但是我不能在我的日历上同时调用和渲染。谁能帮我解决这个问题?
我已经试过了
1) 添加第二行像这样的好请求
$('#calendar').fullCalendar({
events: '/missions.json',
events: '/events.json'
})
2) 或者像这样向我的 json 文件添加第二个循环:
但此解决方案的 none 有效。有什么想法吗?
json.array! @missions do |mission|
date_format = '%Y-%m-%dT%H:%M:%S'
json.id mission.id
json.title mission.title
json.start mission.start.strftime(date_format)
json.end mission.end.strftime(date_format)
json.edit_url edit_mission_path(mission)
end
json.array! @events do |event|
date_format = '%Y-%m-%dT%H:%M:%S'
json.id event.id
json.title event.title
json.start event.start.strftime(date_format)
json.end event.end.strftime(date_format)
json.edit_url edit_event_path(event)
end
但此解决方案的 none 有效。有什么想法吗?
您的 fullCalendar 对象中只能有一个 "events" 键。
$('#calendar').fullCalendar({
events: '/events.json',
});
如果您希望它们都存在于同一个日历中,请将它们组合在控制器或 JS 中。在控制器中组合它们可能要容易得多。
这是基本的控制器实现方式:
def action
@missions = Mission.all
@events = Event.all
@all_events = @events + @missions
respond_to do |format|
format.json { render json: @all_events }
format.html
end
end
如果你想使用 jbuilder 文件,那么它可能看起来像这样:
missions = json.array! @missions do |mission|
date_format = '%Y-%m-%dT%H:%M:%S'
json.id mission.id
json.title mission.title
json.start mission.start.strftime(date_format)
json.end mission.end.strftime(date_format)
json.edit_url edit_mission_path(mission)
end
events = json.array! @events do |event|
date_format = '%Y-%m-%dT%H:%M:%S'
json.id event.id
json.title event.title
json.start event.start.strftime(date_format)
json.end event.end.strftime(date_format)
json.edit_url edit_event_path(event)
end
events + missions
注意添加仍然出现在底部。 IMO,转换最好留给助手和控制器操作,而 jbuilder 将它们混合到只是混淆的视图中。 jbuilder 应该主要用于渲染特定的 JSON。不是为了改变它,我们在这里做的。