gpt4 book ai didi

javascript - 完整日历+过滤显示数据可能吗?

转载 作者:行者123 更新时间:2023-11-28 16:01:32 24 4
gpt4 key购买 nike

我目前正在使用 event_calendar,但更倾向于 FullCalendar,因为它允许在给定一周添加多个事件时自动调整高度。

我当前的设置有一个与我的应用程序中的每个位置关联的事件日历。因此,当用户加载特定位置时,它自己会呈现与正在查看的位置关联的事件。

我已经弄乱并实现了完整日历,但想知道由于 url 指向/events,有没有办法只显示与特定位置关联的事件?

目前,所有事件都显示在所有位置日历上。

谢谢!

添加更多细节

这是我当前的事件日历设置,它允许我过滤与每个位置关联的事件

事件模型

belongs_to :location
has_event_calendar

位置模型

has_many :events

位置 Controller “显示”

def show
@month = (params[:month] || (Time.zone || Time).now.month).to_i
@year = (params[:year] || (Time.zone || Time).now.year).to_i
@shown_month = Date.civil(@year, @month)
@event_strips = @location.events.event_strips_for_month(@shown_month)
end

位置“显示 View ”

<div class="span8">                           
<%= raw(event_calendar) %>
</div>

现在,由于显示为 JSON 会查看数据的事件“索引”,因此如何过滤完整日历的相同数据?

完整日历 JavaScript

$(document).ready(function() {

var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();

$('#calendar').fullCalendar({

header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
defaultView: 'month',
height: 500,

// a future calendar might have many sources.
eventSources: [{
url: '/events', // Shows all events BUT need it to show only events to certain location
color: 'yellow',
textColor: 'black',
ignoreTimezone: false
}],

timeFormat: 'h:mm t{ - h:mm t} ',
dragOpacity: "0.5",

);
};

最佳答案

假设您正在使用events as a json feed您可以更改 url 属性中包含的额外参数以在服务器上进行过滤

如果您无法在服务器上进行过滤,您可以使用eventRender在客户端进行过滤(仅隐藏您不想显示的元素)

从您的编辑来看,您似乎想要加载所有事件并根据所选位置隐藏一些事件,因此我认为您应该使用 eventRender 来过滤事件。如果位置改变请调用rerenderEvents (从与已更改的控件相关的更改或单击功能中)这将再次调用 eventRender 并应用您已有的过滤器。我认为这不会再次调用 json feed,但您可能想验证这一点。

...
eventRender: function(event, element) {
if (event.belongs_to !== $('#locationControl').val()) {
$(element).hide();
} else {
// Not sure if you need this
$(element).show();
}
}...


$('#locationControl').change(function () {
$('#calendar').fullCalendar( 'rerenderEvents' )
}):

关于javascript - 完整日历+过滤显示数据可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16828270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com