NEWS
[gelöst] Elegantere Programmierung?
-
@paul53 ich habe eine Logik Frage. Wann triggert diese On Anweisung:
on([urlaub, sommer], change : any, function () {Und wann diese?
on([urlaub, sommer], function () {Oder anders gefragt: würde die letzte On Anweisung triggern, wenn beide den Wert 0 haben.
Mein Ziel ist, dass bei JEDER Änderung der Variablen "sommer" und "urlaub" das Script ausgeführt wird. Denn die verschiedenen Fälleprüfe ich anschließend mit einer IF Anweisung der Form:
if(getState(urlaub).val == 0 && getState(sommer).val == 0) { // oder if(getState(urlaub).val == 0 && getState(sommer).val == 1) { // oder if(getState(urlaub).val == 1 && getState(sommer).val == 0) { // oder if(getState(urlaub).val == 1 && getState(sommer).val == 1) { -
@paul53 ich habe eine Logik Frage. Wann triggert diese On Anweisung:
on([urlaub, sommer], change : any, function () {Und wann diese?
on([urlaub, sommer], function () {Oder anders gefragt: würde die letzte On Anweisung triggern, wenn beide den Wert 0 haben.
Mein Ziel ist, dass bei JEDER Änderung der Variablen "sommer" und "urlaub" das Script ausgeführt wird. Denn die verschiedenen Fälleprüfe ich anschließend mit einer IF Anweisung der Form:
if(getState(urlaub).val == 0 && getState(sommer).val == 0) { // oder if(getState(urlaub).val == 0 && getState(sommer).val == 1) { // oder if(getState(urlaub).val == 1 && getState(sommer).val == 0) { // oder if(getState(urlaub).val == 1 && getState(sommer).val == 1) {@skorpil sagte: Wann triggert diese On Anweisung:
Diese Anweisung ist falsch. Richtig:
on({id: [urlaub, sommer], change: any}, function () {Sie triggert bei jeder Aktualisierung des Zeitstempels eines der Datenpunkte, auch dann, wenn sich der Wert nicht ändert. Sie ist identisch mit dieser Anweisung:
on({id: [urlaub, sommer]}, function () {@skorpil sagte in [gelöst] Elegantere Programmierung?:
Und wann diese?
Diese Anweisung triggert bei Wertänderung eines der beiden Datenpunkte.
-
@skorpil sagte: Wann triggert diese On Anweisung:
Diese Anweisung ist falsch. Richtig:
on({id: [urlaub, sommer], change: any}, function () {Sie triggert bei jeder Aktualisierung des Zeitstempels eines der Datenpunkte, auch dann, wenn sich der Wert nicht ändert. Sie ist identisch mit dieser Anweisung:
on({id: [urlaub, sommer]}, function () {@skorpil sagte in [gelöst] Elegantere Programmierung?:
Und wann diese?
Diese Anweisung triggert bei Wertänderung eines der beiden Datenpunkte.
@paul53 Sorry, Deine Antwort sieht bei mir so aus:

Das ist irgendwie missverständlich. „Diese Anweisung ist falsch“ Welche?
Ich will nicht, dass bei jeder Änderung des ZEITSTEMPEL das Script ausgeführt wird. Das wäre hier ja Quatsch. Also ist
on([urlaub, sommer], function () {richtig? Bei WertÄNDERUNG? Oder muss „id:“ noch dazu. Das war ja bei mir nicht der Fall. Bin verwirrt!
-
@paul53 Sorry, Deine Antwort sieht bei mir so aus:

Das ist irgendwie missverständlich. „Diese Anweisung ist falsch“ Welche?
Ich will nicht, dass bei jeder Änderung des ZEITSTEMPEL das Script ausgeführt wird. Das wäre hier ja Quatsch. Also ist
on([urlaub, sommer], function () {richtig? Bei WertÄNDERUNG? Oder muss „id:“ noch dazu. Das war ja bei mir nicht der Fall. Bin verwirrt!
@skorpil sagte in [gelöst] Elegantere Programmierung?:
Also ist
on([urlaub, sommer], function () {richtig?
Richtig!!! Da muss kein id: dazu. Hier hast du einen String / ein Array mit Strings. Diese on fkt triggert nur auf Änderung!
Wenn du anstatt des Strings, ein Object in die on fkt packst, muss id: dazu. In diesem Object kannst du weitere Parameter wie val: oder ack: oder change: dazu nehmen und die Fkt schärfer auf einen bestimmten Anwendungsfall zuschneiden.
on([dp1, "0_userdata.0.ButtonTest"], async (data) => {hier ein Bsp. als Array mit Strings (egal ob Variable oder der String direkt).
on({id: id1, val: true, change: "ne"}, async function(data) {Und hier ein Bsp mit Objekt.
btw: das eine ist eine Pfeilfuntkion (=>), das andere die "normale" Schreibweise. Macht aber das selbe.
-
@skorpil sagte in [gelöst] Elegantere Programmierung?:
Also ist
on([urlaub, sommer], function () {richtig?
Richtig!!! Da muss kein id: dazu. Hier hast du einen String / ein Array mit Strings. Diese on fkt triggert nur auf Änderung!
Wenn du anstatt des Strings, ein Object in die on fkt packst, muss id: dazu. In diesem Object kannst du weitere Parameter wie val: oder ack: oder change: dazu nehmen und die Fkt schärfer auf einen bestimmten Anwendungsfall zuschneiden.
on([dp1, "0_userdata.0.ButtonTest"], async (data) => {hier ein Bsp. als Array mit Strings (egal ob Variable oder der String direkt).
on({id: id1, val: true, change: "ne"}, async function(data) {Und hier ein Bsp mit Objekt.
btw: das eine ist eine Pfeilfuntkion (=>), das andere die "normale" Schreibweise. Macht aber das selbe.
@karel-puhli merci für die Aufklärung