Frage

Unten ist ein sehr einfaches Beispiel. Wenn ich auf die Schaltfläche Schritt 2 klicke, ändert sich der Status, aber das Panel Schritt 2 ist nicht vorhanden.

Ich vermute, die Kinder des Staates werden aus irgendeinem Grund nicht erstellt, weshalb ich die ElementcreationPolicy auf "unmittelbar" eingestellt habe, aber es macht keinen Unterschied

Dies ist katastrophal für die Anwendung, da der Benutzer in der Schwebe bleibt und zum Aktualisieren gezwungen ist

Bitte Ideen, bitte?

 <s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" 
                       creationPolicy="all" currentState="step1">   
        <s:states>
            <s:State name="step1"/>
            <s:State name="step2"/>
        </s:states>
        <s:BorderContainer includeIn="step1" itemCreationPolicy="immediate">
            <s:Panel title="Step 1"/>  
        </s:BorderContainer>
        <s:BorderContainer includeIn="step2" itemCreationPolicy="immediate">
            <s:Panel title="Step 2"/>  
        </s:BorderContainer>
        <s:Button title="step1" click="{this.setCurrentState('step1',true)}"/>
        <s:Button title="step2" click="{this.setCurrentState('step2',true)}"/>
    </s:BorderContainer>
War es hilfreich?

Lösung

Ich habe es gerade mit Flex SDK 4.1 getestet und es funktioniert, ohne die Erstellungsrichtlinie zu ändern. Wenn Sie auf "Schritt 2" klicken, wird der Status erfolgreich geändert.

Übrigens: Sie benötigen nicht die lockigen Zahnspangen in Ihrem Klick -Event -Handler ...

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" currentState="step1">

    <s:layout>
        <s:VerticalLayout/>
    </s:layout>

    <s:states>
        <s:State name="step1"/>
        <s:State name="step2"/>
    </s:states>

    <s:BorderContainer includeIn="step1">
        <s:Panel title="Step 1"/>
    </s:BorderContainer>

    <s:BorderContainer includeIn="step2">
        <s:Panel title="Step 2"/>
    </s:BorderContainer>

    <s:Button label="step1" click="setCurrentState('step1', true)"/>
    <s:Button label="step2" click="setCurrentState('step2', true)"/>
</s:Application>

Andere Tipps

Scheint, dass Sie die alte / vorveröffentlichte Version von Flex 4 SDK verwenden. Es könnte eine gute Idee sein, auf 4.1.0 zu aktualisieren - letzte stabile Version.

PS: Schreiben this.setCurrentState('step1',true) ist nicht die beste Idee. Ich schlage vor, sie zu verwenden currentState = 'step1' - Es ist die offizielle Art des Staates, sich zu verändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top