¿Es posible llamar a una función javascript desde un controlador en rieles?Llamar a las funciones de javascript desde el controlador
Respuesta
Lo que hago es hacer un controlador de rieles producir una acción de JavaScript. ¿Lo tiene llamar un parcial que tiene javascript incluido en él?
A menos que desee que se active en la carga de página, lo configuraría a través de AJAX. Para que haga una llamada AJAX al controlador que luego llama a un archivo javascript.
Esto se puede ver a través de la votación:
Primero el AJAX
//This instantiates a function you may use several times.
jQuery.fn.submitWithAjax = function() {
this.live("click", function() {
$.ajax({type: "GET", url: $(this).attr("href"), dataType: "script"});
return false;
});
};
// Here's an example of the class that will be 'clicked'
$(".vote").submitWithAjax();
Segundo Controlador
La clase $(".vote")
que se ha hecho clic tenía un atributo href que llama a mi controlador.
def vote_up
respond_to do |format|
# The action 'vote' is called here.
format.js { render :action => "vote", :layout => false }
end
end
Ahora el controlador carga un archivo de AJAX
// this file is called vote.js.haml
== $("#post_#{@post.id}").replaceWith("#{ escape_javascript(render :partial => 'main/post_view', :locals => {:post_view => @post}) }");
Usted ha llamado con éxito una función de JavaScript desde un controlador.
¿Es posible llamar a una función dentro de vote.js.haml? ¿Cómo podría pasar una variable cuando realiza la llamada a la función? –
¿Es este un método de carriles o un método js? Puede pasar variables a su archivo .js desde su controlador. Entonces en el caso de mi ejemplo, @post se describe en la acción del controlador para 'def vote' como' @ post' .. etc. – Trip
Una nota importante para esta configuración es que la función link_to para ".vote" debería tener 'remote: true' para llamar a js en lugar de representar una nueva página al hacer clic. – mpgarate
No, pero podría generar javascript que se llamaría inmediatamente en su vista, p.
<script type="text/javascript">
function IWillBeCalledImmediately()
{
alert('called');
};
IWillBeCalledImmediately();
</script>
Sin embargo, probablemente sería mejor usar jquery y usar el evento listo.
<script type="text/javascript">
$(function() {
alert('called');
});
</script>
- 1. Cómo llamar a un método de controlador desde Javascript
- 2. Llamar a las funciones de C++ exe desde C#
- 3. Cómo llamar a las funciones de Matlab desde C++
- 4. Llamar a las funciones de Powershell desde C#
- 5. Cómo puedo llamar a las funciones de C++ desde ruby
- 6. Llamar a las funciones miembro desde un constructor
- 7. Llamar a funciones Java desde Clojure
- 8. Llamar a las funciones de Javascript desde un Applet de Java
- 9. Llamar a las funciones de JavaScript desde la vista en Rails 3
- 10. Llamar a href desde JavaScript
- 11. Llamar a funciones R desde VC++
- 12. llamar a funciones C dentro Javascript
- 13. Cómo llamar a la función de JavaScript desde el servlet
- 14. Llamar javascript desde la acción del controlador MVC
- 15. ¿Cómo se activan las funciones de javascript desde el flash?
- 16. Cómo llamar a funciones/métodos C++ a través de JavaScript
- 17. ¿Cómo llamar a la función Java de GWT desde Javascript?
- 18. Llamar a JavaScript directamente desde TypeScript
- 19. ¿Cómo llamar a JavaScript desde Android?
- 20. Llamar a la función php desde JavaScript
- 21. Llamar a los métodos DLL desde Javascript
- 22. ¿Cómo llamar a Objective-C desde Javascript?
- 23. ¿Llamar a VBScript desde JavaScript o viceversa?
- 24. Cómo llamar a jQuery correctamente desde un controlador AngularJS
- 25. llamando a las funciones de Objective C desde Python?
- 26. WebKit.NET para llamar a una función de C# desde JavaScript
- 27. Llamar javascript desde el servidor en postback
- 28. Llamando a las funciones de Python desde C++
- 29. ¿Cómo llamar funciones desde un parámetro vararg?
- 30. ¿Cómo llamar a las funciones de MATLAB desde la línea de comandos de Linux?
ssri, Lo que hago es llamar a través de AJAX a un controlador de Rails que luego activa un parcial que llama a una función de JavaScript. – Trip