Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RxDom:创建新id时不工作_Javascript_Ajax_Rxjs_Rxjs Dom - Fatal编程技术网

Javascript RxDom:创建新id时不工作

Javascript RxDom:创建新id时不工作,javascript,ajax,rxjs,rxjs-dom,Javascript,Ajax,Rxjs,Rxjs Dom,我正在使用它来侦听来自DOM的事件。以下是我的示例代码: var input = document.getElementById('test_id'); var source = Rx.DOM.change(input); var subscription = source.subscribe( function (x) { console.log(x); }, function (err) { consol

我正在使用它来侦听来自DOM的事件。以下是我的示例代码:

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');
        });
document.ready
finish页面上有
test\u id
时,此代码起作用。但我使用的是AJAX请求,所以在客户端发送和接收AJAX请求时,
test\u id
只会在一段时间后出现。我怎样才能让RxDom通知这个


谢谢。

您需要再次创建可观察对象

调用
document.getElementById('test_id')并且id为
test\u id
的元素不存在,它返回null。因此,无法“刷新”源代码,因为它甚至不知道应该“刷新”哪个DOM元素


因此,唯一的方法是在从Ajax调用中附加HTML后创建可观察对象。

wow。谢谢你让我知道这件事。另一个问题是:如何使其他元素订阅到此源。thanks@TrầnKimDự 它只是一个可观察的,你订阅它就像订阅任何其他可观察的。顺便问一下,你说的“元素订阅”是什么意思?DOM元素不能订阅任何内容。我有一个
输入一个
。当输入一个变更时,两个名为b和c的元素将知道并“做点什么”。正如上面的代码,我必须手动执行:当从a接收到更改信号时,我必须在同一个函数上运行do_something。我想反转动作,你现在做的方式完全一样。输入
a
将在每次更改时更新
b
c
。输入的
b
c
无法自动更新,必须有人触发
a
的更新。谢谢你让我知道。所以RxJS不支持递归观察器。它的意思是:如果a依赖于b。b取决于c。那么当改变a不改变c时?