Как получить параметры объекта для редактирования

У меня проблема с атрибутом DateTime. Вопрос в том, что я создал модальный бутстрап для редактирования своих событий в Fullcalendar. Когда я нажимаю на события, появляется модальное окно, содержащее форму для редактирования события. Проблема в том, что я не знаю, как получить параметры события, на которое я нажал. Я покажу вам форму, контроллер, вид и javascript.

код javascript (Fullcalendar) В eventClick я передаю URL-адрес этого элемента управления.

function drawControl(controls) {
        console.log(controls[0])

        $('#calendar').fullCalendar({
            editable: true,
            aspectRatio: 1,
            contentHeight: 500,
            scrollTime: '24:00:00',
            minTime: '01:00:00',
            maxTime: '24:00:00',
            defaultView: 'agendaWeek',
            header:{left:"prev,next,today",
            center:"title",
            right:"month, agendaWeek, agendaDay"},



            events: allControls(controls),

            eventRender: function(event, element) {

                var bloodLevel=event.title

                if(bloodLevel >= 180) {
                    element.css('background-color', 'red');
                }
                else if(bloodLevel < 70) {
                    element.css('background-color', 'yellow');
                }
            },
            eventClick: function(calEvent, jsEvent, view) {

                $('#modalTitle').html(calEvent.title);
                $('#modalDate').html(calEvent.start);
                $('#modalBody').html(event.description);
                $('#eventUrl').attr('href',"/users/:user_id/controls/calEvent.id/edit");
                $('#fullCalModal').modal();
            } //....

_form_edit.erb В form_edit я передаю по умолчанию @control_day, который является DateTime этого события

<div class="">
<%= form_for [@user, @control], :html => {:class => ''} do |f| %>
    <p class="new_control_text">Edit Control</p>
      <div class="form-group">
        <div class="input-group">
          <%= f.label :level, class: "sr-only", for: "exampleInputEmail2" %>

          <%= f.number_field :level, class: "form-control", id: "exampleInputEmail2", placeholder: "Enter level" %>

        </div>
      </div>

      <div class="form-group container">
        <div class="row datetimeselect">
            <div class='col-sm-12'>
                <div class="form-group">
                    <div class='input-group date' id='datetimepicker2'>

                        <%= f.text_field :day, default: @control_day, :class => 'form-control' %>
                        <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
                        </span>
                    </div>
                </div>
            </div>
         </div>
     </div>

    <div class="select_period">
       <%= f.select :period, options_for_select([['pre-breakfast'], ['post-breakfast'],['pre-lunch'],['post-lunch'],['afternoon'],['pre-dinner'],['post-dinner']]), {}, class: "form-control" %>
    </div>      

      <%= f.submit "Save", type:"submit", class: "btn btn-default button-save" %>

<% end %>
</div>

index.html.erb

<div id="fullCalModal" class="modal fade">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span> <span class="sr-only">close</span></button>
            <h4 id="modalTitle" class="modal-title"></h4>
        </div>
        <div id="modalBody" class="modal-body">
          <%= render 'form_edit' %>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button class="btn btn-primary"><a id="eventUrl" target="_blank">Event Page</a></button>
        </div>
    </div>
</div>

controlsController.rb Hear I convert the datetime to the DateTimepicker format

def edit
    @user = current_user
    @control = Control.find(params[:id])
    @control_day = @control.day.strftime('%m','%d','%Y','%I','%M','%p')
end

person David Dsr    schedule 19.12.2014    source источник


Ответы (1)


Вы проверили документы и посмотрели, что находится в Объекте События? например: calEvent.start - это объект момента, поэтому установка его в HTML в вашем модальном окне, скорее всего, не то, что вы хотите с ним делать.

ознакомьтесь с документацией momentjs, чтобы узнать, как использовать calEvent.start.format() или другие функции.

person warath-coder    schedule 24.12.2014