我对 JS 和 Jquery 很陌生。我正在构建一个调度应用程序。我将约会存储在一个名为“事件”的模型中。我正在使用帮助器从名为“event.time_start”和“event.time_end”的列中的值构建多维数组,以供用户预约的给定日期。当用户从下拉菜单中选择 start_time 和 end_time 时,已经有约会的时间将灰显/“禁用”。我正在使用http://jonthornton.github.io/jquery-timepicker/的 jquery.timepicker 和 rails 来阻止给定时间对数组([8am, 6pm], [1pm, 2pm])中的某些时间值。
我正在使用变量@other_events 查找给定日期的“其他”事件(通知所用时间的事件)。
这是配对 event.start_time 和 event.end_time
events_helper.erb的助手
module EventsHelper
def taken_times(other_events)
other_events.map { |event| [event.time_start, event.time_end] }
@taken_times = taken_times(other_events)
end
end
我可以让数组在视图中像这样工作:
<% taken_times(@other_events).each do |taken_time| %>
<%= taken_time.first.strftime("%l:%M %P")%>
<%= taken_time.last.strftime("%l:%M %P")%>,
<% end %>
但我无法让它在 JS 中工作。我现在正在尝试使用 Gon Gem 我需要输出的是:
事件/show.html.erb 视图
<script>
$('#jqueryExample .time').timepicker({
'timeFormat': 'g:ia',
'disableTimeRanges': [
// start dynamic array
['10:00am', '10:15am'],
['1:00pm', '2:15pm'],
['5:00pm', '5:15pm']
]
//end dynamic array
});
$('#jqueryExample').datepair();
</script>
所以我试过了
应用程序.html.erb
<%= Gon::Base.render_data({}) %>
events_controller.erb
def show
@event = Event.new
@other_events = Event.where(date_id: params[:id])
gon.taken_times = @taken_times
end
与 JS
<script>
$('#jqueryExample .time').timepicker({
'timeFormat': 'g:ia',
'disableTimeRanges': [
// start dynamic array
gon.taken_times
//end dynamic array
});
$('#jqueryExample').datepair();
</script>
但这不起作用。它只是杀死了文本字段的下拉功能。我很想知道这些逗号分隔的对象(例如“'timeFormat':'g:ia'”和“disableTimeRanges: [....]”)是如何调用的,因此我可以更好地搜索 javascript 答案。我对 JS 和 JQuery 很陌生。