B
B
Bogdan2017-04-12 22:31:10
JavaScript
Bogdan, 2017-04-12 22:31:10

Rails and JS (JQuery) as the right development methodology?

Hello. Please tell me the correct methodology for developing JS on Rails.
Here is an example from a project. I asked questions in the comments in a piece of source code. Please tell me what are the wrong approaches implemented? And give me some good advice. :) Maybe there are implementation options through the object model? Thanks

$( document ).on( 'turbolinks:load', function() {

  // Каждая страничка имеет свой ИД 
  // вот в строке ниже как раз идет проверка на наличие и тогда все функции и переменные создаются только 
  // при наличии такого елемента на страничке
  // нужна ли такая проверка? 
  if ( $( '#institution_orders' ).length ) {
   
    // Работа с сессиями, правильна ли реализация 
    if ( sessionStorage.instituiton_orders_date_start ) {
      $( '#date_start' ).val( sessionStorage.instituiton_orders_date_start ) };
 
    // Функция в модуле. Правильное ли объявление? 
    function filterTableInstituitonOrders() {
      var $date_start = $( '#date_start' );
      var $path_ajax = $date_start.data( 'ajax-path' )
      $.ajax( { url: $path_ajax, type: 'GET', dataType: 'script' } );
    };

filterTableInstituitonOrders(); // Фильтрация таблицы заявок

    // Нажатие на кнопочку создать заявки
    $( '#create_institution_order' ).click( function() {
      $( "#dialog_wait" ).dialog( 'open' );
      var $date_start = $('#date_start');
      var $path_ajax = $( this).data( 'ajax-path' );
      $.ajax( { url: $path_ajax, type: 'POST', dataType: 'script' } );
    } );

    // Выбора даты с календаря
    $( '#date_start' ).datepicker( {
      onSelect: function() {
        var $this = $( this );
        var $thisVal =  $this.val();
        filterTableInstituitonOrders(); // 
      }
    } );

    // Табличка перестраивается посредством AJAX 
    // поэтому прив"язать события на клавиши получилось только так 
   // Правильно ли так?
    $( document ).on( 'click', '#table_institution_orders tbody tr', function() {
     // Правильно ли реализован рендеринг на другую страничку?
      window.location.replace( $( this ).parents( 'table' ).data( 'path-view' ) );
    } );
  };

} );

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question