NEWS
[Gelöst] Innerhalb "View in widget" auf selektierte view Daten zugreifen
-
Ich würde mir gern eine Navigation bauen die mit View in widget arbeitet. Eine gute Anleitung dazu ist https://www.smarthome-tricks.de/softwar … avigation/ hier zu finden.
Soweit so gut. Ich würde mir aber gern eigene Navigations Buttons bauen, dazu müsste ich dann den "aktiven" Button umranden. Um das in der Navigations view zu erledigen müsste ich dort irgendwie an die selektierte "Hauptview" kommen damit ich z.B. die Umrandung relativ platzieren kann. Kann man die x/y Position irgendwie dynamisch machen z.b. mit einer Variable oder so?
Oder aber ich mach für jeden Button Art Umrandung und zeige dann nur die an die zu aktiven View passt mit der Sichtbarkeit Eigenschaft.
-
So ganz habe ich das nicht verstanden. Kannst du dazu mal ein Beispiel oder Screenshots machen?
Gruß
-
Prinzipiell will ich in meiner Navigationsview z.B. eine Header anzeigen. Da steht dann typischer weise der Name der View die grad selektiert ist drin. Jetzt macht es ja keinen Sinn in jeder view einen Header einzufügen, sondern den hätte ich gern in der Navigationsview. Ich muss den namen aber als "Datenpunkt" bekommen. Wie kann man sowas realisieren? (Das mit den selektieren war ja nur eine weitere Eigenschaft die man mit dem gleichen Ansatz lösen könnte)
-
Ich hab jetzt eine Lösung gefunden. JavaScript und einen "virtuellen" State erstellen.
createState('javascript.0.VIS.HeadingChangeTimeBehavior', 'Manu', {type: "string"}); on('javascript.0.VIS.HeadingChangeTimeBehavior', function (obj) { if (!obj.state.ack) { setState("innogy-smarthome.0.Wohnzimmer.Heizung-Balkon-Links.OperationMode", obj.state.val); setState("innogy-smarthome.0.Gästezimmer.Heizung-Gästezimmer.OperationMode", obj.state.val); setState("innogy-smarthome.0.Kinderzimmer.Heizung-Kinderzimmer.OperationMode", obj.state.val); setState("innogy-smarthome.0.Schlafzimmer.Heizung-Schlafzimmer.OperationMode", obj.state.val); setState("innogy-smarthome.0.Küche.Heizung-Küche.OperationMode", obj.state.val); setState("innogy-smarthome.0.Bad.Heizung-Bad.OperationMode", obj.state.val); } });
Nun einfach noch z.B. einen Kippschalter nehmen und True/False Werte mit Auto/Manu versehen und mit dem state javascript.0.VIS.HeadingChangeTimeBehavior verknüpfen.
BTW: Bindings sind ziemlich cool, speziell das man das einfach inline hin schreiben kann (das geht noch nicht mal in WPF).
Siehe auch https://github.com/ioBroker/ioBroker.vis