Puis-je lier un composant Flex propriété à une fonction?
Je veux mettre le activé propriété sur un bouton en fonction de la valeur de retour d'une fonction qui a un ou plusieurs paramètres. Comment puis-je faire cela?
private function isUserAllowed (userName:Boolean):Boolean {
if (userName == 'Tom')
return true;
if (userName == 'Bill')
return false;
}
<mx:Button label="Create PO" id="createPOButton"
enabled="<I want to call isUserAllowed ('Bill') or isUserAllowed ('Tom') here>"
click="createPOButton_Click()" />
OriginalL'auteur SkunkSpinner | 2009-01-15
Vous devez vous connecter pour publier un commentaire.
ou en ligne:
Si le paramètre n'est pas mentionné sur le "permis" de la ligne, puis la liaison ne se déclenche pas lors de la modification de la valeur - le bouton aurait aucun moyen de savoir qu'il doit ré-évaluer la "activé".
Malgré que cela fonctionne, cette approche se sent encore comme un grand ol' bidouille pour moi personnellement, il semble beaucoup plus approprié pour se lier à la fonction explicitement, plutôt que de le faire d'ailleurs par le biais d'une variable publique "passé". Bizarre la pratique. Mais à chacun ses goûts!
OriginalL'auteur
Selon le Flex docs, tant que la propriété est bindable, vous pouvez simplement le faire (j'ai inclus les deux boutons supplémentaires à démontrer):
Sans currentUser marqué [Bindable], cependant, il ne fonctionnera pas.
Une autre façon d'aller, si vous voulais lier plus littéralement à la fonction (c'est aussi exprimé dans les docs), serait d'avoir la fonction de répondre à un événement, vous expédition, lorsque l'utilisateur actuel modifications, comme suit:
Donc, il ya un couple de façons. OMI, la deuxième me semble plus approprié, mais il n'y a absolument rien de mal avec la première. Bonne chance!
OriginalL'auteur Christian Nunciato
Voici ce que j'ai fait à quelques reprises, dans des circonstances similaires:
De cette façon, lorsque le Bindable
_username
changements, il va déclencher une notification de changement. Depuis l'étiquette est à l'écoute de_username
changements (même si c'est simplement un paramètre à une autre fonction), leenabled
propriété sera ré-évalué.OriginalL'auteur Matt Dillard
essayez ceci, j'ai mis à jour.
La variable est une variable globale, il n'est pas nécessaire de passer à la fonction.
OriginalL'auteur ForYourOwnGood