2013-11-23 3 views
2

Какое место для размещения javascript/coffeescript в Rails при работе с частичной загрузкой через AJAX?Rails javascript звонки после частичного рендеринга

Я хотел бы назвать:

$('.selector').datapicker() 

каждый раз '_form' частичной загрузки.

Я могу положить это прямо в части _form.html.erb, и это будет работать как ожидалось, но я вроде как чувствую, что это неправильный держатель для js.

ответ

3

«Правильное место» должно находиться в папке с ресурсами, где находятся все js-скрипты.

Вы можете использовать:

$(document).ajaxComplete(function(event,request, settings) { 
    $('.selector').datapicker(); 
}); 
+0

Я не думаю, что я должен вызвать, что Js при каждом вызове AJAX – ted

+1

Trigger его на Ajax вызова полной функции, то: $ .ajax ({ URL: " your_url " }). done (функция() { $ ('. selector'). datapicker(); }); –

+0

извините, но явное определение js для запуска по URL-адресу не похоже на хорошую идею – ted

0

Если вы используете UJS данные ЩИТОК сделать Аякс, вы можете подключить к Аяксу случае, UJS делает. Смотрите здесь: https://github.com/rails/jquery-ujs/wiki/ajax

использование ajax:complete повторно добавить datapicker к элементу, например:

$('#submitted_form').on('ajax:complete', function(event, xhr, settings) { 
    $('#date_field').datapicker(); 
}); 

... а потом это пойти бы в ваших активов/JavaScript папку.

Также проверить эту статью: http://www.alfajango.com/blog/rails-3-remote-links-and-forms/

Смежные вопросы