4mar/100
TextArea two-way databinding et CDATA
Lorsque l'on bind une propriété a un TextArea ou un TextInput, le databinding ne se fait que dans un seul sens, c'est à dire
<mx:TextInput text="{source}" />
Lorsque source change, le TextInput est automatiquement mis à jour, cependant, lorsque l'on écrit dans le textInput "source" n'est pas modifié.
L'une des solutions décrite dans ce blog est :
<mx:TextInput id="example" text="{source}" valueCommit="{source = example.text;}" />
//Ou pour chaque lettre entrée
<mx:TextInput id="example" text="{source}" change="{source = example.text;}" />
//Ou pour chaque lettre entrée
<mx:TextInput id="example" text="{source}" change="{source = example.text;}" />
Mais un problème auquel j'ai était confronté est de binder le contenu d'un noeud XML
L'une des solutions est donc la suivante :
<mx:TextArea text="{ node.text }" width="400" height="200" change="node.text=cdata(event.target.text)"/>
avec la fonction cdata qui est :
private function cdata(str:String):XML
{
var x:XML = new XML("<text><![CDATA[" + str + "]"+"]></text>");
return x;
}
{
var x:XML = new XML("<text><![CDATA[" + str + "]"+"]></text>");
return x;
}
Et voilà! la balise CDATA est automatique ajouter =)
Commentaires (0)
Trackbacks (0)
(Souscrire aux commentaires de cet article)
Aucun trackbacks pour l'instant