NEWS
[Frage] zu Laufzeit erstellen State verarbeiten
-
Moin,
gibt es eine Möglichkeit einen State der zur Laufzeit erstellt wurde im Skript abzufragen ?
der 'Pfad' ist Teilweise vorher bekannt und würde in etwa javascript.0.Spotify.Devices.xxxx.Play lauten. xxxx ist nicht vorhersehbar !
on({id:'javascript.0.Spotify.xxxx.Play',val:true}, function (obj){ //bla bla });würde ja nicht gehen…
-
Moin,
gibt es eine Möglichkeit einen State der zur Laufzeit erstellt wurde im Skript abzufragen ?
der 'Pfad' ist Teilweise vorher bekannt und würde in etwa javascript.0.Spotify.Devices.xxxx.Play lauten. xxxx ist nicht vorhersehbar !
on({id:'javascript.0.Spotify.xxxx.Play',val:true}, function (obj){ //bla bla });würde ja nicht gehen… `
Weis nicht ob ich dich richtig verstanden habe, aber…$('javascript.0.Spotify.*').on(function (obj){ //bla bla });geht vielleicht
-
Moin,
gibt es eine Möglichkeit einen State der zur Laufzeit erstellt wurde im Skript abzufragen ?
der 'Pfad' ist Teilweise vorher bekannt und würde in etwa javascript.0.Spotify.Devices.xxxx.Play lauten. xxxx ist nicht vorhersehbar !
on({id:'javascript.0.Spotify.xxxx.Play',val:true}, function (obj){ //bla bla });würde ja nicht gehen… `
Ich gehe mal davon aus, das xxxx irgendwann bekannt ist. Dann könntest Du, wenn der Wert von xxxx sich ändert, den State in einer Variable zusammenbauen.
Dann fragst Du einfach die Variable ab:
on({id: variable ,val:true}, function (obj){ //bla bla });Hoffe das ist verständlich ;)
P.S.: eine Alternative wäre dann noch RegExp (siehe Beschreibung vom Javascript-Adapter).
mfg dna909
-
xxxx ist nicht vorhersehbar ! `
Wenn du zumindest ungefährt weißt, wie das aussehen wird, gehts mit RegExp:
1. Fall: xxx sind Ziffern (0-9):
on({id: /javascript\.0\.spotify\.\d+\.play/i, val:true}, )2. Fall: xxx sind Buchstaben/Ziffern/Unterstrich:
on({id: /javascript\.0\.spotify\.\w+\.play/i, val:true}, [...])Andernfalls sag nochmal Bescheid, dann passen wir das Muster an.
-
die beiden Varianten funktionieren
$('state[state.id=*.play]').on(function (obj) { console.log('GEDRÜCKT 3') }); $('state[id=.play]').on(function (obj) { console.log('GEDRÜCKT 4') });allerdings nur wenn Role nicht als Button definiert ist, allerdings würde ich gerne bei Button bleiben, gibts da ne Möglichkeit ?
-
on({id: /\.play$/, val:true},function (obj){ console.log('GEDRÜCKT 5') });funktioniert ! `
Hat aber den Nachteil, dass ALLE States gefunden werden, die auf ".play" enden, nicht nur die in javascript.0.Spotify. Probier mal Pauls Variante
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden