【问题标题】:fullCalendar User eventsfullCalendar 用户事件
【发布时间】:2015-05-25 03:30:27
【问题描述】:

我累了。我有用户模型的基本完整日历。我想添加 2 个按钮,用户可以在其中将日历分成两个。首先他只得到他的事件,然后在几秒钟内他得到所有用户的所有事件。我该怎么做?我是 Rails 的新手 :) 这是我的js代码

$(document).ready ->
  $("#calendar").fullCalendar(

    events: '/events.json'
    eventColor: '#378006'
    eventBackgroundColor: 'red'

  )

还有我的 json 事件文件

json.array!(@events) do |event|

  json.extract! event, :id, :title, :description, :user_id
  json.start event.start_time
  json.end event.end_time

  json.url event_url(event, format: :html)
  if (event.user_id == current_user.id)
    json.color 'green'
  end

  end

【问题讨论】:

    标签: javascript jquery ruby-on-rails fullcalendar


    【解决方案1】:

    为此,您可以这样做:

    1)在视图上添加两个按钮,分别命名为“用户事件”和“所有用户事件”。

    2)现在在您的 js 中设置一个名为 calEvents 的全局变量。

    3)现在使用按钮单击事件,这意味着当用户单击“用户事件”按钮时将 calEvents 的值设置为等于 current_user 事件,如果用户单击“所有用户事件”则更改calEvents 的值等于所有用户事件。

    注意:确保你的事件应该是 json 格式。

    要实现这一点,您可以编写如下代码:

    calEvents = ''
    
    $(document).on 'click', 'all_user_events', ->
      calEvents = '/events.json'
      return
    
    $(document).on 'click', 'user_events', ->
      calEvents = '/events/user_events.json'
      return
    
    $(document).ready ->
      calEvents = '/events.json'
      $("#calendar").fullCalendar(
    
        events: calEvents
        eventColor: '#378006'
        eventBackgroundColor: 'red'
    
    )  
    

    在您的 events_controller 中添加新操作

    def user_events
      @events = current_user.events
      render json: @events
    end
    

    在您的 config/routs.rb 文件中

    get 'events/user_events' => 'events#user_events'
    

    编辑:

    如果你想通过复选框做到这一点,你可以这样做:

    $(document).on 'change', 'your_checkobx_id_to_select_user_events ', ->
      if @checked
        calEvents = 'events/user_events.json'
        return
    
    $(document).on 'change', 'your_checkobx_id_to_select_all_events', ->
      if @checked
        calEvents = 'events.json'
        return  
    

    希望我以正确的方式理解了您的问题,这将对您有所帮助。

    【讨论】:

    • 没有按钮可以做到吗?我想用复选框来做
    • 是的,你也可以用复选框来做到这一点
    • 你能帮忙吗,拜托 :) 猜不难
    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 2016-01-28
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2015-03-25
    相关资源
    最近更新 更多