Rxjs-DOM加载函数不会触发角度2

时间:2017-04-07 07:32:12

标签: angular rxjs-dom

我目前正在开发一个Angular 2项目,我只需要调用特定的函数,并且只有在加载了页面上的所有元素之后。我尝试使用Observable中的eventFrom函数,当我期待点击一下时,它就能正常工作。操作,但一旦我切换到'#load;#34;它根本没有发射。接下来我尝试使用Rxjs-DOM加载函数,它也不会触发。

以下是我现在的代码:



ngAfterViewInit(): void {
  let input = this.container.nativeElement.getElementsByClassName('list-item');

  let source = Rx.DOM.load(input);

  let subscription = source.subscribe((x) => {
      console.log('Next!');
    },
    (err) => {
      console.log('Error: ' + err);
    },
    () => {
      let temp = this.container.nativeElement.getElementsByClassName('list-item');
      console.log(temp.length);
    });

}

<div class="list-wrapper">
  <div class="list">
    <div class="list-item" *ngFor="let item of items">
      <img src={{item.image}} alt="{{item.title}}">
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

 "@angular/core": "4.0.1",
    "@types/rx-dom": "^7.0.0",
    "angular2-infinite-scroll": "0.3.4",
    "gulp-run": "1.7.1",
    "rxjs": "5.2.1-smooth"

temp.length始终为0。 如果我在那里设置timeout它将完美地工作,因为所有元素加载2-3秒,然后temp不为空。但在这种情况下,超时是不可取的。 有什么我做错了吗? 另一个问题是,如果Angular 2中有任何其他方法只在所有dom元素被ACTUALLY加载后调用函数。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试ngZone.run。它将让角度重新渲染为最新型号。