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
0
A
答えて
1
をターゲットを抽出あなたがここにhttps://github.com/Microsoft/TypeScript/blob/master/src/lib/dom.generated.d.ts#L3661ジェネリックEventTarget
タイプのみいくつかのメソッドを持って見ることができるように、DOMイベントのtarget
はタイプEventTarget
です。
あなたのケースでは、どのような種類の要素がターゲットにあるのか正確に分かります。 だからあなたtarget
がvalue
性質を持っているコンパイラに伝えるために、あなたは(たとえばhttps://github.com/Microsoft/TypeScript/blob/master/src/lib/dom.generated.d.ts#L5248ため `HTMLInputElementの)より具体的な形にそれをキャストする必要が
私はあなたがシングルショットでそれを行うことができるとは思いません(または少なくとも私はそれを行う手法を知らないので)別のmap
が必要になります。
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])*/);
アンこれを行うにしてもきれいな方法(私たちは二度map().map()
を繰り返しているので、我々は非常に乾燥していないとして)私たちはxstream
によって与えられたcompose
演算子を使用することができます。
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])*/);
はそれが役に立てば幸い:)
関連する問題
- 1. 入力ボタンの中央にあるテキスト
- 2. テキストが入力された直後にTextBox.TextChangedが発生する
- 3. 保存されたデータからテキストボックスを事前入力する
- 4. TextInput入力されたテキストがアンドロイドに表示されない
- 5. テキストボックスフィールドにテキストを事前入力する
- 6. Rails/Ruby - 別のページからデータが渡されたフォームを事前入力
- 7. VS2010マクロでテキストを設定すると、操作が中止されました(HRESULTからの例外:0x80004004 E_ABORT)
- 8. 入力テキストにカンマが入力されたときにAngularjsが表示される
- 9. コンテナが変更された後にGoogleマップを再入力
- 10. Pythonファイルの操作エラーが発生しました:ValueError:閉じられたファイルの入出力操作
- 11. テキストが入力されたときにイベントを実行する
- 12. 入力が動的に作成され、フラスコの入力からデータが取得される
- 13. 入力中にあるコントロールから別のコントロールにテキストをコピーしますか?
- 14. ドラッグコピー操作中にMK_CONTROLフラグがクリアされました
- 15. Automator「指定されたテキストを取得する」にテキストを入力してからキーストロークを入力する
- 16. オンラインキーボードは、テキストが入力されたときに無効に
- 17. nugget.orgからumbracocmsをインストール中に操作がタイムアウトしました
- 18. ドラフトでユーザーから入力されたテキストを取得する
- 19. テキストがテキスト入力に入力されたときにJQueryを使用してセルをハイライト表示する
- 20. ユーザ入力テキストがあるjava derbyデータベースクエリ
- 21. テキストが入力されたときにDIVを表示
- 22. アンドロイド - EditTextフィールドがあらかじめ入力されている
- 23. 検索入力に入力されたテキストが表示されないのはなぜですか?
- 24. アトミックシステムコール。入力/出力操作
- 25. 入力データに何らかの検証エラーがあると、フォームにデータが入力されません。 Laravel Collective
- 26. 入力中にループが発生し、その中に出現が見られる
- 27. 動的CFTから値が入力された中間の雲形成テンプレート
- 28. 操作された入力フィールドはサーバに送信されません
- 29. ユーザーが入力中にテキストの色を変更しますか?
- 30. IE6のリダイレクトで操作が中断されました