/ / Rails javascript chama depois de parcialmente processado - javascript, ruby ​​on rails, ruby ​​on rails-4

Chamadas de javascript do Rails após renderização parcial - javascript, ruby-on-rails, ruby-on-rails-4

Qual é o lugar certo para colocar javascript / coffeescript no Rails quando se trabalha com parcial sendo carregado via AJAX?

Eu gostaria de ligar:

$(".selector").datapicker()

toda vez que "_form" parcial é carregado.

Eu posso colocar isso diretamente no _form.html.erb parcial e funcionaria como esperado, mas eu meio que sinto que é um titular errado para js.

Respostas:

3 para resposta № 1

O "lugar certo" deve estar dentro da pasta de ativos, onde todos os scripts js residem.

Você pode usar:

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

0 para resposta № 2

Se você estiver usando o UJS data-remote para fazer o ajax, pode conectar-se ao evento ajax que o UJS faz. Veja aqui: https://github.com/rails/jquery-ujs/wiki/ajax

usar ajax:complete para adicionar novamente o datapicker ao elemento, por exemplo:

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

... e então isso iria para a pasta assets / javascript.

Confira também este artigo: http://www.alfajango.com/blog/rails-3-remote-links-and-forms/