Main.ts
const clickMessages$ = sources.DOM
.select('.add')
.events('click');
const latitudeMinimum$ = sources.DOM
.select('.latitudeMinimum')
.events('input');
const latitudeMaximum$ = sources.DOM
.select('.latitudeMaximum')
.events('input');
const latituteRange$ = xs.combine(latitudeMinimum$, latitudeMaximum$);
const newStream$ = xs.combine(clickMessages$, latituteRange$);
const filter$ = newStream$.filter(c => { return true });
const map$ = filter$.map(([a, [b, c]]) => { return [b.target.value, c.target.value] }
// <<--- b.target.value won't compile... was expecting to get my value from input field
Antwort
Die Sache ist, die target
ein DOM-Ereignis vom Typ EventTarget
wie Sie hier https://github.com/Microsoft/TypeScript/blob/master/src/lib/dom.generated.d.ts#L3661 Der generische EventTarget
Typ nur sehen können, ein paar Methoden hat.
In Ihrem Fall wissen Sie genau, welche Art von Element im Ziel sein wird. Also, um den Compiler zu sagen, dass Ihr target
die value
Eigenschaft hat, müssen Sie es in einer konkreteren Art werfen (`Htmlinputelement zum Beispiel https://github.com/Microsoft/TypeScript/blob/master/src/lib/dom.generated.d.ts#L5248)
ich Sie nicht denken, kann das tun in einem einzigen Schuss (oder zumindest bin ich mir einer Technik nicht bewusst, um dies zu tun), also würden Sie eine andere map
benötigen.
const latitudeMinValue$ = latitudeMinimum$
.map(event => event.target)
.map((element: HTMLInputElemnet) => element.name)
const latitudeMaxValue$ = latitudeMaximum$
.map(event => event.target)
.map((element: HTMLInputElemnet) => element.name)
const latituteRange$ = xs.combine(latitudeMinValue$, latitudeMaxValue$)
.map(/*([minValue, maxValue])*/);
Ein noch sauberer Weg, dies zu tun (wie wir die map().map()
zweimal wiederholen, so sind wir nicht sehr trocken) können wir die compose
Betreiber von xstream
gegeben verwenden können.
function eventToTargetValue(event$ Stream<Event>) {
return event$.map(event => event.target)
.map((element: HTMLInputElement) => element.value)
}
const latitudeMinValue$ = latitudeMinimum$
.compose(eventToTargetValue)
const latitudeMaxValue$ = latitudeMaximum$
.compose(eventToTargetValue)
const latituteRange$ = xs.combine(latitudeMinValue$, latitudeMaxValue$)
.map(/*([minValue, maxValue])*/);
Hoffe, es hilft :)
- 1. JavaScript mit charAt erhalten aus dem Eingabetext
- 2. Jquery liest keine Sonderzeichen aus dem Eingabetext
- 3. Extrahieren von Marker-Koordinaten aus dem eingebetteten Google-Karte
- 4. Erhalten Attributwert aus Eingabetext
- 5. Cyclejs und Xstream nichts anzeigt
- 6. Daten aus dem Stundenplan extrahieren
- 7. Kivy Eingabetext aus dem Datei-Browser zu aktualisieren
- 8. Wie Kriegsdatei auf dem Ziel mit Ansible extrahieren
- 9. Datum und Stunde aus NSDate extrahieren - Ziel C
- 10. Calling Maven Ziel aus einem anderen Ziel
- 11. Extrahieren von Elementen einer Karte aus Clojure core.logic
- 12. jquery, Zahlenwert aus dem Namensschild extrahieren
- 13. So extrahieren Sie URLs aus dem Text
- 14. Um Titel aus dem Inhalt zu extrahieren
- 15. Informationen aus dem Haskell-Objekt extrahieren
- 16. Spark - Extrahieren einzelner Werte aus dem Datenrahmen
- 17. Titel aus dem Namen in c extrahieren #
- 18. preg_match - Extrahieren String aus dem URL
- 19. Daten aus dem JSON-Array extrahieren?
- 20. Scrapy: JSON aus dem HTML-Skript extrahieren
- 21. Probleme beim Extrahieren von Zeiten aus dem Zeitplan mit Regex
- 22. extrahieren, während die '-' bekommen
- 23. Polylinie nicht zum Ziel auf Google Karte
- 24. CycleJS Collection gibt alte Daten zurück
- 25. So extrahieren Sie Filter aus dem BufferedGrid-Objekt in EXTJS
- 26. Nicht löschbaren Text vor dem Eingabetext im JavaFX-Textfeld anzeigen
- 27. SQL-Skript zum Extrahieren eines Landes aus dem Freitextfeld
- 28. Daten aus Zellenfeld extrahieren
- 29. Wie Cookie-Treiber für CycleJS verwenden
- 30. Wie HTML einfügen in iframe mit CycleJS