【发布时间】:2015-03-27 14:56:17
【问题描述】:
我对 JS 和 Jquery 很陌生。我正在构建一个调度应用程序。我将约会存储在一个名为“事件”的模型中。我正在使用帮助程序从名为“event.time_start”和“event.time_end”的列中的值构建多维数组,以供用户预约的给定日期。当用户从下拉菜单中选择 start_time 和 end_time 时,已经有约会的时间将灰显/“禁用”。我正在使用 jquery.timepicker by http://jonthornton.github.io/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 我需要说的是:
events/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>
我试过了
application.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 很陌生。
【问题讨论】:
标签: jquery ruby-on-rails arrays ruby-on-rails-4 jquery-ui-timepicker