Hallo zusammen,
Beim Schließen eines Popups lasse ich einen Perl-Code ausführen:
<ftui-popup "id=pop1" @close="sendFhem(`{puCloseHeatingDetails()}`)">
Das funktioniert sehr gut, aber ich habe anhand der TOST-Messages festgestellt, dass der Code jeweils doppelt aufgerufen wird.
Möglicherweise liegt hier ein Bug vor; ich sehe keinen anderen Grund.
Vielleicht hat jemand eine Idee, oder @setstate sieht mal hin.
NACHTRAG
Im Übrigen passiert das bei jedem Dialog, der via @close geschlossen wird; es hat also nichts mit meinem spezifischen Code zu tun, denke ich.
Hast du zufällig pop1 mehrfach vergeben?
Der Syntax ist auch nicht ganz richtig:
anstatt:
Zitat<ftui-popup "id=pop1"
würde ich das so schreiben:
Zitat<ftui-popup id="pop1"
Zitat von: setstate am 26 Februar 2024, 18:28:46Der Syntax ist auch nicht ganz richtig:
Das stimmt.
Allerdings war das nur ein (falsch aufgebautes) Beispiel, um es nicht zu verkomplizieren.
Der tatsächliche, komplette Code sieht so aus:
<ftui-popup id="pop_heating"
[active]="popup_ctrl_heating | map('`[KEOD]{1}G[1234]{1}`: true, none: false')"
height="18em" width="24em" left="20em" top="10em" timeout="0"
@close="sendFhem(`{puCloseHeatingDetails()}`)">
<header class="size-3"><ftui-label [text]="TMP"></ftui-label> </header>
<ftui-row><ftui-column>
<ftui-label class="size-3" text = "Ist-Temp. "></ftui-label>
<ftui-label class="size-3" text = "Soll-Temp. "></ftui-label>
<ftui-label class="size-3" text = " "></ftui-label>
<ftui-button popup-close
width="7em"
fill="outline"
color="red"
value="0" (value)="setreading TMP:dlg-confirmed"
states="$value">Abbruch
</ftui-button>
</ftui-column>
<ftui-column>
<ftui-label class="size-3" [text] = "TMP:measured-temp | append(' °C')"></ftui-label>
<!-- Temperaturwahl bei KG2 nicht möglich (dieser Heizkörper ist demontiert) -->
<ftui-dropdown
[disabled] = "popup_ctrl_heating | map('`[EOD]{1}G[1234]{1}`:false, KG4:false, KG2:true')"
class="size-3"
[value]="TMP:desired-temp"
(value)="setreading TMP:desired-temp"
list=",10.0,15.0,16.0,17.0,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0" >
</ftui-dropdown>
<ftui-label class="size-3" text = " "></ftui-label>
<ftui-button popup-close
width="7em"
fill="outline"
color="green"
value="1" (value)="setreading TMP:dlg-confirmed"
states="$value">OK
</ftui-button>
</ftui-column></ftui-row>
</ftui-popup>
Alle IDs sind unique.
Wie gesagt: der Aufruf funktioniert, aber wird jeweils doppelt ausgeführt