Функция загрузки Rxjs-DOM не запускает угловой 2
В настоящее время я работаю над проектом Angular 2, где мне нужно вызывать только определенные функции и только после того, как ВСЕ элементы на странице загружены. Я попытался использовать функцию eventFrom из Observable, она работала, когда я ожидал операцию "щелчка", но как только я переключился на "нагрузку", он вообще не срабатывал. Затем я попытался использовать функцию загрузки 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>
"@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 НАСТОЯЩИХ загружены.
Заранее спасибо.
1 ответ
Пытаться ngZone.run
, Это позволит угловой рендеринг для последней модели.