Flex: RemoteObject, передавая именованные параметры - PullRequest
1 голос
/ 07 декабря 2010

Я вызываю метод ColdFusion cfc, используя метод FlexObject.

<fx:Declarations>
    <s:RemoteObject destination="ColdFusion" source="cfc.categoryGateway" id="categoryGateway">
        <s:method name="getCategoryList" result="returnHandler(event)"
                   fault="mx.controls.Alert.show(event.fault.faultString)">
            <s:arguments>
                <orderby>categoryId</orderby>
                <parentCategory>1</parentCategory>
            </s:arguments>
        </s:method>
    </s:RemoteObject>
</fx:Declarations>

Где мой cfc принимает параметр следующим образом:

<cffunction name="getCategoryList" access="remote" output="false" returntype="query">
    <cfargument name="parentCategory" type="string" required="false" />
    <cfargument name="orderby" type="string" required="false" />
    <!--- code... --->
    <cfreturn qCategoryList />
</cffunction>

Итак, вы можете видеть, что я изменил последовательность параметров, когда я вызываю метод cfc. Но это не сработало.

Это означает, что <s:arguments> не передает с именем параметр. Есть ли решение для этого? Как вы видите, некоторые аргументы могут быть необязательными, поэтому они должны передаваться по имени.

1 Ответ

2 голосов
/ 08 декабря 2010

Параметр arguments является массивом, поэтому независимо от того, как вы называете каждый элемент, я думаю, он все равно будет использовать его по порядку. Вместо этого вы можете попробовать сделать что-то вроде этого:

<s:RemoteObject destination="ColdFusion" source="cfc.categoryGateway" id="categoryGateway">
        <s:method name="getCategoryList" result="returnHandler(event)"
                  fault="mx.controls.Alert.show(event.fault.faultString)" />
    </s:RemoteObject>

затем позвоните:

categoryGateway.getCategoryList({orderby:'categoryId', parentCategory:'1'});
...