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 № 1O "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/