setTimeout不在角度组件4上执行lib

时间:2017-10-30 23:32:22

标签: angular video.js

setTimeout不会在角度组件4上执行lib

我做了两次尝试,首先使用setTimeout和另一个可观察的

该脚本只运行一次,然后当您将导航更改为另一个组件并返回时,lib不再加载。

可观察

Observable.interval(500)
                .subscribe(i => {
                    this.player = videojs('player')
                })

的setTimeout

setTimeout(() => {
                    $(function () {
                        this.player = videojs('player')
                    });
                }, 500);

1 个答案:

答案 0 :(得分:0)

如果这是Angular 2/4,请尝试以下操作。而不是依赖于setTimeout或Observable.interval,最好使用内置的生命周期钩子来做到这一点。在这里,我建议使用AfterViewInit钩子。

class MyComponent implements AfterViewInit {
  ngAfterViewInit() {
    this.player = videojs('player');
  }
}

这是官方Angular 4 doc的示例。我不知道你的组件名称,这就是我从doc中保留默认名称的原因。以下是文档的链接:https://angular.io/api/core/AfterViewInit