1

私のフレックスモバイルプロジェクトには2つのビューがあります

  1. アンケートのリストです
  2. アンケートの質問のリストです

ビュー 1 のリストから調査を選択し、レコード ID をビュー 2 に渡して、ID に基づいてデータを照会します。

私が苦労しているのは、調査 ID を取得して、パラメーター化されたデータを取得する場所から 2 ページ目のアクション スクリプトに渡すことです。

すべてのヒントに感謝します。

マイページ1コード

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:surveynameservice="services.surveynameservice.*"
    title="surveyMaster">
<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;

        import spark.events.IndexChangeEvent;

        protected function          list_creationCompleteHandler(event:FlexEvent):void
        {
            getAllSurveynameResult.token = surveynameService.getAllSurveyname();
        }

        protected function surveySelected(event:IndexChangeEvent):void
        {
            // TODO Auto-generated method stub
            var tmpObj:Object = new Object();
            tmpObj.sID = list.selectedItem.surveyID;
            tmpObj.sName = list.selectedItem.surveyName;
            (this.parentDocument as cp_dbHomeView).rightNav.activeView.data=tmpObj;

        }

    ]]>
</fx:Script>
<fx:Declarations>
    <s:CallResponder id="getAllSurveynameResult"/>
    <surveynameservice:SurveynameService id="surveynameService"/>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:List id="list" x="-1" y="0" width="171" height="100%" change="surveySelected(event)"
        creationComplete="list_creationCompleteHandler(event)"  labelField="surveyName">
    <s:AsyncListView list="{getAllSurveynameResult.lastResult}"/>
</s:List>
</s:View>

マイページ2コード

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:surveyquestionsservice="services.surveyquestionsservice.*"
    creationComplete="init()" title="{data.sID}">
<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;
        import spark.components.DataRenderer;
        public function init():void{

        }
        protected function list_creationCompleteHandler(event:FlexEvent):void
        {
            getSurveyQuestionsResult.token = surveyquestionsService.getSurveyQuestions(data);
        }
    ]]>
</fx:Script>
<s:layout>
    <s:VerticalLayout paddingTop="15" paddingBottom="15" paddingLeft="15" paddingRight="15" gap="5"
                      horizontalAlign="center" verticalAlign="top"/>
</s:layout>
<fx:Declarations>
    <s:CallResponder id="getSurveyQuestionsResult"/>
    <surveyquestionsservice:SurveyquestionsService id="surveyquestionsService"/>
</fx:Declarations>
<s:Label text="Click on a location on the left to explore!" visible="{data==null?true:false}"/>
<s:Label text="Information about {this.data.surveyID}" visible="{data!=null?true:false}"/>

<s:TextArea text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur accumsan felis ac tortor aliquam iaculis. Phasellus hendrerit viverra enim, sit amet scelerisque lectus dictum at. Aenean sodales nisi sed leo congue et porttitor ligula vehicula. 
            Pellentesque turpis massa, suscipit vel fermentum quis, dignissim sed ipsum. Nulla aliquet libero adipiscing risus lobortis eleifend quis at velit. Duis at leo urna. 
            Praesent facilisis faucibus neque, ut ullamcorper lacus gravida a. Donec vel iaculis sapien."  width="90%" editable="false" visible="{data!=null?true:false}"/> 
<s:List id="list" width="659" creationComplete="list_creationCompleteHandler(event)" click="init()"
        labelField="questionDesc">
    <s:AsyncListView list="{getSurveyQuestionsResult.lastResult}"/>
</s:List>
</s:View>
4

2 に答える 2

0

その部分を明確にしていただきありがとうございます。私の理解では、MXML のバインディングは正常に機能しており、サービスの 2 番目の呼び出しに渡すパラメーターを取得する方法がわかりませんか? その場合、サービスに設定した HTTP メソッド (またはデフォルトで使用するものは何でも) に応じて、PHP で $_REQUEST または $_POST または $_GET を使用できるはずです (通常、AS3 サービス クラスではデフォルトで GET であると思います)。

代わりに、データがいつ入ってくるかを知り、その時点で呼び出しを行うだけの問題である場合は、次のような設定データをオーバーライドするだけです

override public function set data(value:Object):void
{
    super.data = value;
    if(!data || data == value)
         return;
    getSurveyQuestionsResult.token = surveyquestionsService.getSurveyQuestions(data);
}
于 2012-09-26T00:27:54.853 に答える