javascript - Fullcalendar Rails 上的 Popover Bootstrap

标签 javascript ruby-on-rails json twitter-bootstrap fullcalendar

Fullcalendar 非常漂亮。我试试 我想尝试在每个事件上添加弹出窗口作为描述。如果我单击一个事件,则会显示弹出窗口。例如http://i.cubeupload.com/LuBXjx.png 我不了解 json 和 javascript,但我想了解这一切。 谁能帮帮我?

Popover 日历.js.咖啡

$(document).ready ->
  $('#test').fullCalendar
    header: 
      left: 'prev,next today',
      center: 'title',
      right: 'month'
    defaultView: 'month',
    height: 500,



    buttonText: {
        month: 'month',
        today: 'today'
    },

    eventSources: [{
      url: '/school/calendars',
    }],


    firstHour: 6,
    slotMinutes: 30,
    defaultEventMinutes: 120,
    axisFormat: 'H', 
    timeFormat: 'H(:mm)',
    dragOpacity: {
        agenda: 0.5
    },
    minTime: 0,
    maxTime: 24

在模型/event.rb 上

scope :between, lambda {|start_time, end_time|
    {:conditions => [
  "starts_at > ? and starts_at < ?",
  Event.format_date(start_time), Event.format_date(end_time)
] }
  }

  # need to override the json view to return what full_calendar is expecting.
  # http://arshaw.com/fullcalendar/docs/event_data/Event_Object/
  def as_json(options = {})
    {
      :id => self.id,
      :title =>  self.name ,
      :description => self.description || "",
      :start => starts_at.rfc822,
      :end => ends_at.rfc822,
      :allDay => self.all_day,
      :recurring => false,
      #:color => "red"
    }

  end

  def self.format_date(date_time)
    Time.at(date_time.to_i).to_formatted_s(:db)
  end

在 controller/school/calendars_controller.rb 上

@events = Event.scoped
@events = Event.between(params['start'], params['end']) if (params['start'] && params['end'])
    respond_to do |format|
              format.html # index.html.erb
              format.json { render json:  @events }
     end

这是弹窗

<div class="popover right">
     <div class="arrow"></div>
         <h3 class="popover-title"> <%= @event.nama %> </h3>
            <div class="popover-content">
              <p>Start at : <%= @event.starts_at %>
              End at : <%= @event.ends_at %>
              Description : <%= @event.description %>
              <br/>
              </p>
            </div>
</div> 

最佳答案

您需要的是 eventRender回调,它允许您操作每个事件。

$('#calendar').fullCalendar({
    ...
    eventRender: function (event, element) {
        element.popover({
            title: event.nama,
            placement: 'right',
            content: + '<br />Start: ' + event.starts_at + '<br />End: ' + event.ends_at + '<br />Description: ' + event.description,
        });
    }
});

关于javascript - Fullcalendar Rails 上的 Popover Bootstrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904033/

相关文章:

html - 我的引导导航栏列表是垂直的而不是水平的

Javascript 获取地址栏值

sql-server - 用于 Rails 的 SQL Server 适配器

javascript - Vue.js项目中如何知道浏览器页面是否正在加载?

python - 可以在 SQLAlchemy 中设置类似 rails 的关联吗?

php - 在 php 脚本中访问发布的 Json 数据

json - Go json.Unmarshal 字段案例

javascript - 从本地 JSON 文件中获取数据的 Morris 图表

javascript - 首先jquery切换打开

javascript - 如何限制通过ajax发布的JS对象