Cyril :
> Dans une page, j'ai un noeud avec un identifiant particulier, que
> j'insére dans un autre noeud par la méthode :
>
> page.insert_html :top, 'noeud', "<div id='new' >coucou</div>"
>
> Au premier passage aucun problème. Mais je peux être amené à devoir
> remplacer ce nouveaux noeud d'identifiant new avec le même template
> RJS.
>
> Donc je voudrais savoir comment testé l'existence ou pas d'un noeud
> avec un identifiant précis.
côté serveur, je ne pense pas que ce soit possible.
> J'ai vu que je pouvais faire :
>
> page['new]
>
> qui me renvoi un
> #<ActionView::Helpers::JavaScriptElementProxy:0xb727371c>, mais je
> n'ai pas trouvé la doc sur cette objet et donc les méthodes qui y sont
> associées.
Je ne vois pas en quoi cette documentation pourrait t'aider.
Tu n'as pas un dialogue entre le serveur et le client, genre :
"- Cher client, ce DOM id existe-t-il ?"
- Cher serveur, point du tout.
- Ah dans ce cas, je vous balance ce RJS sous cette forme-là
plutôt que celle-ci, faites-en bon usage.
- Bien reçu, je l'exécute. Au plaisir"
C'est plutôt :
- Tiens client, je te balance du RJS ou plutôt du JS généré
par Rails, tu l'exécutes et ya intérêt que ça marche !
- Ok chef.
La vérification si le dom id existe, je fais ci sinon je fais
ça doit se faire côté client et non côté serveur.
Quand le RJS est "dynamique", ie des structures de contrôle
Ruby ou des boucles :
genre :
@comments.each do |comment|
page["[EMAIL PROTECTED]"].hide
end
if ma_condition
page.visual_effect ...
else
page.replace_html...
end
Ces structures sont utilisées côté serveur.
Pour avoir du JS "dynamique" ie. avec des structures
de contrôle, tu utilises << , par exemple
page << "if ma_condition {"
page.replace_html ...
page << "}"
page << "Try.these {"
...
page << "}"
Mais tu peux aussi appeler une fonction JS que t'as
défini dans application.js, qui vérifie l'existence du noeud
avant de faire telle opération, et tu l'appelles côté RJS
avec page.call
Bon, je sais plus ce que je voulais dire, mais je m'arrête
là pour le moment.
-- Jean-François.
--
À la renverse.
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---