我通过RXJS的间隔时间进行轮播效果来更改参数。
我发现它可以在开发模式下工作(但可以),但是在universal
模式下不能正常工作,无法进入页面。
例如:
n: number = 0;
max: number = 5;
constructor(){}
ngOnInit() {
this.carousel();
}
carousel() {
this.subscription = interval(2000).subscribe(() => {
//In universal, the console.log message show in node.js background log message not in browser console message. Each time the page is reorganized, it will be executed once and cannot be destroyed.
console.log(`show the photo: ${this.n}`);
if (this.n>this.max){
this.n = 0;
}else{
this.n = this.n+1;
}
}
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
我在universal
模型中发现,假设轮播效果在页面B
上,则可以通过页面A
上的链接成功进入页面B,但直接打开页面B将失败。
我尝试在ngAfterContentInit()
中启动轮播,但无法正常工作。
答案 0 :(得分:0)
如果您使用通用角度,则需要使用isPlatformBrowser
排除只能在前端运行的代码。
示例:
import { isPlatformBrowser } from '@angular/common';
import { PLATFORM_ID } from "@angular/core";
constructor(
@Inject(PLATFORM_ID) private platformId: Object
) { }
do(){
if (isPlatformBrowser(this.platformId)) {
//do something, only runs on the front end
}
}