2009-10-19 4 views
3

Dans CF9 doc: Defining components and functions in CFScript, il est dit:Comment spécifier les attributs d'argument dans CFscript? (CF9)

/** 
*Comment text, treated as a hint. 
*Set metadata, including, optionally, attributes, in the last entries 
*in the comment block, as follows: 
*@metadataName metadataValue 
... 
*/ 
access returnType function functionName(arg1Type arg1Name="defaultValue1" 
arg1Attribute="attributeValue...,arg2Type 
arg2Name="defaultValue2" arg2Attribute="attributeValue...,...) 
functionAttributeName="attributeValue" ... { 
body contents 
} 

Comment spécifier vous arg1Attribute? J'ai essayé ceci:

public void function setFirstname(string firstname="" displayName="first name"){} 

mais cela ne fonctionne pas.

De même, comment traduisez-vous cela en style script?

<cffunction name="setPerson"> 
    <cfargument name="person" type="com.Person"/> 
</cffunction> 

J'ai essayé:

function setPerson(com.Person person){} 

et il ne fonctionne pas non plus. "Vous ne pouvez pas utiliser une référence de variable avec". "Opérateurs dans ce contexte", dit-il.

+1

S'il s'agit d'un bug, veuillez voter: http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=80394 – Henry

Répondre

1

fixé dans CF9 Update 1

/** This is setPerson function hint 
* @person this is person argument hint 
*/ 
function setPerson(com.Person person){} 

Cela fonctionne, mais CFBuilder (à partir de la version 1.0) envisageront cette invalide encore.

+0

Obtenez-vous de l'aide sur le code de cette façon? AKA Intellisense – jfrobishow

+0

CFBuilder 1.0 ne fera même pas la coloration syntaxique une fois que vous utilisez le point pour le type d'argument ... sans parler d'intellisense – Henry

6

Il s'avère qu'il s'agit d'un bug de documentation. Il n'y a aucun moyen de fournir des métadonnées pour un argument dans un bloc de script. Vous pouvez faire l'indice, requis, le type et les valeurs par défaut, mais rien d'autre. Je pose des questions sur la chose com.Person. Mark Mandel a suggéré d'importer com et d'utiliser simplement Person.

+0

Thx. J'ai essayé d'importer et d'utiliser Person, mais cela ne fonctionne pas non plus car la fonction supposera toujours que le type d'argument est Person dans le même paquet. – Henry

0

Je viens de rencontrer le même problème et j'ai trouvé que vous pouvez importer des styles Java pour plusieurs COM avec un *. J'ai pu utiliser le type ArgType simple alors. Vous voudrez peut-être vous assurer que le "cache des composants" est désactivé dans votre administrateur des FC ou redémarrer votre serveur car je suis sûr que CF se souviendra de ne pas le trouver.

L'importation a même "survécu" au niveau 3 d'héritage et était disponible dans le composant enfant.

Questions connexes