2010-02-11 4 views
3

Dans une vue, j'ai un script (javascript) qui déclare une variable après un traitement en profondeur. Comment puis-je utiliser cette variable en dehors des limites du script dans la même page de vue?Rails: Comment utiliser une variable javascript en dehors de <script.../> mais dans la vue?

some_view.html.erb 

<script>var seq = Sortable.sequence('list');</script> 

# How to do this? Is it possible? 

<%= sortable_element "list", 
    :update => "order", 
    :complete=> visual_effect(:highlight, "list"), 
    :scroll => 'list', 
    :url=>{:action=>"order", :order_init => seq} %> 

Merci!

+0

Je suis désolé je suis un peu épais ce soir. Peut-être que cela aide à m'expliquer. J'essaye de faire quelque chose comme ceci: \t \t <% = sortable_element "liste", \t \t: mise à jour => "ordre", \t \t: complète => visual_effect (: highlight, "liste"), \t \t: url => {: action = > "order",: order_init => seq}%> – fjs6

Répondre

2

Ce n'est pas possible car Rails est une langue côté serveur et javascript est exécuté côté client.

Ce que vous cherchez est AJAX fonctionnalité (JavaScript asynchrone)

0

S'il est vraiment javascript qui déclare la variable après le traitement JavaScript, alors vous devez travailler dans l'autre sens. Comme cela (Déplacer le bloc script ci-dessous le code HTML ou cet exemple échouera):

<h2> Hello, my name is <span id="name"></span></h2> 

<script type="text/javascript"> 
    var name = "World"; 
    document.getElementById('name').innerHTML = name; 
</script> 

De cette façon, après l'exécution du script, le nom serait remplacé dans le code HTML du côté client.

Questions connexes