NEWS
(gelöst)VIS Widget Sichbarkeit nicht nachvollziehbar
-
[EDIT]
Das Problem saß vor dem Bildschirm und war auf mangelnde Kenntnisse in JavaScritp zu finden.
Im Log wurde zwar die 0 und 1 ausgegeben.
Der Wert wurde im Object durch das JavaScript nie geändert (war immer 0).
Warum das so ist, muss ich jetzt erst rausfinden.
Der Wert der Javascript Variable war also immer 0.
Die Testreihe unten, wo ich der Annahme war,d as der Wert 1 sein müsste, stimmt also.
Die zweite Testreihe st immer noch unlogisch, da prüfe ich, ob es einfach ein Fehler in meinen Notizen war.
Zur Info, das JavaScript das nicht korrekt arbeitet (die Variable im Objekt nicht ändert):
! ````
createState('ZeigeGraphNr', 0); // 0-7 für das erste iFrame für Graphen
createState('ZeigeGraphNr1', 0); // 0-7 für das zweite iFrame für Graphen
! createState('ZeigeiFrame', 0); // welcher iFrame soll gezeigt werden
! // wenn ein Button mit der ID ZeigeGraphNr gedrückt wird:
// on("javascript.0.ZeigeGraphNr", function(obj) {
on({id: "javascript.0.ZeigeGraphNr", valNe: true}, function(obj) {
ZeigeiFrame = 0;
log("Anderer Graph gewünscht: iFrame:" + ZeigeiFrame);
});
! // wenn ein Button mit der ID ZeigeGraphNr1 gedrückt wird:
// on("javascript.0.ZeigeGraphNr1", function(obj) {
on({id: "javascript.0.ZeigeGraphNr1", valNe: true}, function(obj) {
ZeigeiFrame = 1;
log("Anderer Graph gewünscht: iFrame:" + ZeigeiFrame);
});****[EDIT2]**** So, nun ist das Thema auch für mich gelöst. Damit die Variable auch im Objekt geändert wird musste ich:
setState("javascript.0.ZeigeiFrame",1);
verwenden, statt:
ZeigeiFrame = 1;)
Folgendes konnte ich damit realisieren: Einen View, der über 10 Graphen in einem Bereich darstellt. Zwei übereinanderliegende iFrames, die anhand der Variable ZeigeiFrame eingeblendet werden (1\. iFrame, wenn der Wert 0 ist, zweites iFrame bei 1). Dann 10 Buttons (basic HTML State), die auf Druck die JavaScript Variable mit den Werten von 0-7 befüllen (damit kann dann ein iFrame 8 schon einmal zwischen 8 Ansichten wechseln). Im JavaScript musste dazu nur eine Variable definiert werden, die per Widget "basic HTML State" den Wert ändert. Die Variable wird dann als Objekt ID beim dem iFrame 8 verwendet. Das zweite iFrame liegt über dem Ersten. Die Buttons 1-8 blenden das erste iFrame ein, die Buttons ab 9 das Zweite. Die notwendigen Schritte habe ich aus diversen Stellen hier im Forum. Danke dafür! –-- ****[ursprüngliche Nachricht]**** Die Einstellung Sichbarkeit in einem Widget ist für mich nicht nachvollziehbar: Getestet mit einer Javascript Variable als Objekt ID. Die Variable wurde definiert mit: createState('ZeigeiFrame', 0); Und im Script geändert mit: ZeigeiFrame = 1; Die Werte der Variable wurden im Log entsprechend der Versuche unten angezeigt. Tests mit javascript.0.ZeigeiFrame im Widget unter Sichtbarkeit/Objekt ID: ****(1) Versuch mit javascript.0.ZeigeiFrame = 1**** Getestete Bedingungen unter Sichtbarkeit: <u>Widget war sichtbar bei:</u> != 1 (Bedingung nicht erfüllt) ==0 (Bedingung nicht erfüllt) >=0 (Bedingung erfüllt) <u>Widget war nicht sichtbar bei:</u> !=0 (Bedingung erfüllt) ==1 (Bedingung erfüllt) >5 (Bedingung nicht erfüllt) >=1 (Bedingung erfüllt) Gerade >= 0 und >=1 verstehe ich nicht. Beim Wert 1 trifft dies auf beiden Bedingungen zu und trotzdem verhält sich die Sichtbarkeit unterschiedlich. Ob ich die Logik-Operatoren == und != verwenden darf, weiss ich nicht (mangelnde JavaScript Kenntnisse). Daher habe ich mit verschiedenen Bedingungen getestet. Und die zweite Testreihe: ****(1) Versuch mit javascript.0.ZeigeiFrame = 0**** Getestete Bedingungen unter Sichtbarkeit: <u>Widget war sichtbar bei:</u> ==1 (Bedingung nicht erfüllt) ==0 (Bedingung erfüllt) >=0 (Bedingung erfüllt) <u>Widget war nicht sichtbar bei:</u> >0 (Bedingung nicht erfüllt) >1 (Bedingung nicht erfüllt) ****Testparameter:**** Widget: Basic HTML State VIS: 0.2.11 Web: 0.2.6 js-Controller: 0.5.15 JavaScript: 0.2.3