NEWS
[frage]Objekt mit Rolle ''button" geht nur einmal
-
Hallo,
wenn ich ein Objekt mit Rolle"button" erzeuge
createState('javascript.0.Sony_Bravia_VAR.TV.SenderLesen', false,{type: "boolean", role: "button"});
und mit
on( 'javascript.0.Sony_Bravia_VAR.TV.SenderLesen' , function (obj){ MySonyTV.avContent.getContentList([{source:"tv:dvbc",target:"",type:"",cnt:50,stIdx:""}]) });
auf das Ereigniss reagiere, funktioniert das beim ausfühen des Skript genau 1 mal ! bei einem erneuten klick auf den Button passiert nichts mehr, mit normale True/False auswahl funktioniert es allerdings.
Es scheint so als ob einfach kein weiteres Ereigniss mehr ausgelöst wird (das code darin spielt keine Rolle, ein einfaches console.log wir ebenfalls nicht ausgeführt
was kann das sein ?
-
Versuche es mal so:
on({id: 'javascript.0.Sony_Bravia_VAR.TV.SenderLesen', val: true}, function (obj){ MySonyTV.avContent.getContentList([{source:"tv:dvbc",target:"",type:"",cnt:50,stIdx:""}]); setState(obj.id, false); });
-
jo !! danke ! so klappt es ! aber warum ? ist doch eigentlich ein Bug, oder ?
-
ist doch eigentlich ein Bug, oder ? `
Nein, es ist so gewollt.In der Kurzform des Musters (kein Objekt, nur ID-String) wird nur bei Wertänderungen (change: 'ne') ausgelöst, weil es die meist benötigte Auslösung ist. In der Objektform des Musters ist change: 'any' voreingestellt, was bedeutet, dass jede Aktualisierung des Zeitstempels (ts) - auch ohne Wertänderung - auslöst, wie es bei einem Button benötigt wird:
Die Triggerung auf einen Button funktioniert also auch so:on({id: 'javascript.0.Sony_Bravia_VAR.TV.SenderLesen'}, function(){ MySonyTV.avContent.getContentList([{source:"tv:dvbc",target:"",type:"",cnt:50,stIdx:""}]); });