2016-12-06 6 views
1

何かを構築しようとしていますが、ここに何か間違えがついていなくても足りません。私はボタンのクリックを追跡したいが、#zipの入力から値を得て、なぜを選んだのかを知りたい。 mapToを削除すると、サブスクライブ機能でクリック数を追跡したり変更したりして、結果のdivテキストを#zip入力の内容(正確には私がmapToで行っているように)で更新することができます。 。私のmapToステートメントで何が問題なのですか

Rx.Observable.fromEvent(document.getElementById('btn'),'click') 
    .mapTo($('#zip').val()) 
     .subscribe(function(zipCode){ 
     $('#result').text(zipCode); 
     }); 

jsbin

答えて

2

私はあなたが何をしたいのか理解していれば、あなたはイベントが発生した時に$('#zip')の電流値に$('#result')を更新しようとしています。

オペレータmapTo()は引数として単一の値をとります。この値は、そのソースから来るすべての値の代わりに使用されます。実際には、Observablesのチェーンを作成しているとき(購読する前でさえ)、.mapTo($('#zip').val())で一度だけに初期化されます。

常に実際の値にしたい場合は、コールバックをパラメータとして使用する演算子が必要です。たとえば、ちょうどmap()

Rx.Observable.fromEvent(document.getElementById('btn'), 'click') 
    .map(function(val) { 
    return $('#zip').val(); 
    }) 
    .subscribe(function(zipCode){ 
    $('#result').text(zipCode); 
    }); 

更新されたデモ:http://jsbin.com/qepalo/1/edit?html,js,console,output

+0

が、私はそれを感謝し、これは動作しなかった理由の完全な説明をありがとうございました – Barry

関連する問題