1

我正在使用Reactive Extension 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) {
          console.log('Error: ' + err);
        },
        function () {
          console.log('Completed');
        });

此代码在完成时test_id在页面上有效document.ready。但是我使用的是 AJAX 请求,所以test_id只是在客户端发送和接收 ajax 请求之后出现。我怎样才能让 RxDom 通知这个。

谢谢。

4

1 回答 1

2

您需要再次创建 Observable。

当您调用document.getElementById('test_id');并且具有 id 的元素test_id不存在时,它返回 null。因此没有办法“刷新” sourceObservable,因为它甚至不知道应该“刷新”哪个 DOM 元素。

因此,唯一的方法是在从 Ajax 调用附加 HTML 之后创建 Observable。

于 2016-10-11T13:50:57.610 回答