Answer the question
In order to leave comments, you need to log in
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 questionAsk a Question
731 491 924 answers to any question