2016-10-11 27 views
1

DOMからのリスニングイベントにReactive Extension DOMを使用しています。 test_iddocument.ready仕上がりページ上にあるときRxDom:新しいIDが作成されたときに動作しません

var input = document.getElementById('test_id'); 
var source = Rx.DOM.change(input); 
var subscription = source.subscribe(
     function (x) { 
      console.log(x); 
     }, 
     function (err) { 
      console.log('Error: ' + err); 
     }, 
     function() { 
      console.log('Completed'); 
     }); 

このコードは動作します:ここに私のサンプルコードです。しかし、私はAJAXリクエストを使用していますので、クライアントでajaxリクエストを送受信すると、test_idが表示されます。 RxDomにこれを通知させるにはどうしたらいいですか?

ありがとうございました。

答えて

2

Observableを再度作成する必要があります。

document.getElementById('test_id');を呼び出し、idがtest_idの要素が存在しない場合はnullを返します。したがって、 "リフレッシュ"する方法はありませんsource "リフレッシュ"する必要があるDOM要素が分からないために観察可能です。

唯一の方法は、Ajax呼び出しからHTMLを追加した後でObservableを作成することです。

+0

wow。私にこれを知らせてくれてありがとう。他の質問の1つは、どのようにして他の要素をこのソースにサブクラス化することができるかです。ありがとう –

+0

@TrầnKimDựそれはちょうどObservableです、あなたは他のObservableのようにそれを購読します。 Btw、 "要素購読"とはどういう意味ですか? DOM要素は何も購読できません。 – martin

+0

私の意味は:例えば。私は '入力a 'を持っています。変更を入力すると、bとcという名前の2つの要素が分かり、「何かをする」ことになります。上記のコードでは、私は手動で行う必要があります:からの変更信号を受け取るとき、私は同じ機能でdo_somethingを実行する必要があります。私は行動を逆にしたい。 –

関連する問題