2009-10-18 6 views
0

J'ai créé un composant de bouton personnalisé qui accepte un tableau en tant que propriété. Je définissez la propriété comme suit:Flex 3: transmission d'un tableau au composant personnalisé

titleDims="[{Month: comboBox1.text, Year:comboBox2.text, Sales Order:comboBox3.text}]" 

et je reçois l'erreur suivante:

"1084: Syntax error: expecting rightparen before colon." 

Wat est le problème avec la syntaxe de tableau?

+0

Pourquoi avez-vous des guillemets autour de la déclaration du tableau? – Amarghosh

+0

Je pensais que vous deviez le faire lors de la transmission d'un paramètre à un composant personnalisé – Ivan

+0

Le composant personnalisé attend-il une chaîne ou un tableau? n'est-ce pas cette notation json? – Amarghosh

Répondre

0
cb1 = comboBox1; cb2 = comboBox2; cb3 = comboBox3; 

Option A

titleDims="[{'Month': cb1.text, 'Year':cb2.text, 'Sales Order':cb3.text}]"; 

Option B

titleDims="[{Month: cb1.text, Year:cb2.text, SalesOrder:cb3.text}]"; 

Option C

titleDims="[{Month: cb1.text, Year:cb2.text, Sales_Order:cb3.text}]"; 

j'ignore votre utilisation de la mise titleDims à une première chaîne et en supposant que vous avez un code dont il a besoin de cette façon. À l'avenir, vous n'avez pas besoin de citer cette déclaration.

4

Votre problème est votre formatage. Brisons-le:

titleDims = [{ 
    Month: comboBox1.text, 
    Year:comboBox2.text, 
    Sales Order:comboBox3.text // Whoops! There's a space here! 
}] 

Je propose de le changer à la place SalesOrder.

Si vous vraiment besoin d'espaces dans la clé, vous pouvez le faire:

titleDims = [{ 
    'Month': comboBox1.text, 
    'Year': comboBox2.text, 
    'Sales Order': comboBox3.text 
}] 
+0

+1 Mais, chose intéressante, vous pouvez injecter des espaces dans les noms de variables. Essayez ce code: 'var o: Object = {}; o ["commande client"] = "quelque chose"; trace (o ["ordre de vente"]); 'Maintenant, quant à savoir pourquoi quelqu'un ferait cela, je ne sais pas :) – Amarghosh

+0

J'ai essayé et j'ai la même erreur. Cependant, j'aurai besoin d'espaces dans les touches. J'ai même essayé: titleDims = "[{Month: comboBox1.text}]" et la même erreur est générée! – Ivan

+0

@OP Pourquoi les citations? Cela en fait une chaîne. N'est-ce pas 'titleDims = [{Month: comboBox1.text}]' ce que vous voulez? – Amarghosh

Questions connexes