Здравствуйте. Подскажите пожалуйста правильную методологию разработки JS на Rails.
Вот пример с проекта. Вопросы я задал в комментариях в куске исходного кода. Подскажите пожалуйста какие неправильные походы реализованы? И посоветуйте что-то дельное ))). Может есть варианты реализации через объектную модель? Спасибо
$( 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' ) );
} );
};
} );