Javascript 角度10:如何关闭预紧器?
我有一个预加载程序,它应该在我收到消息后立即关闭Javascript 角度10:如何关闭预紧器?,javascript,angular,Javascript,Angular,我有一个预加载程序,它应该在我收到消息后立即关闭 import { Component, OnInit } from '@angular/core'; import { PreloaderService } from 'src/app/services/preloader.service'; @Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.com
import { Component, OnInit } from '@angular/core';
import { PreloaderService } from 'src/app/services/preloader.service';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'],
})
export class HomeComponent implements OnInit{
constructor(private preloaderService: PreloaderService) {}
ngOnInit(): void {
this.preloaderService.showPreloader();
window.addEventListener('message', function(event) {
console.log(event);
});
}
}
使用功能关闭预加载程序
this.preloaderService.hidePreloader();
我的预服务:
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class PreloaderService {
private isPreloaderVisibleSubject: BehaviorSubject<boolean> = new BehaviorSubject(false);
private preloaderProgressSubject: BehaviorSubject<number> = new BehaviorSubject(0);
isPreloaderVisible: Observable<boolean> = this.isPreloaderVisibleSubject.asObservable();
preloaderProgress: Observable<number> = this.preloaderProgressSubject.asObservable();
constructor() {}
updatePreloaderProgress(value: number) {
this.preloaderProgressSubject.next(value);
}
showPreloader() {
this.isPreloaderVisibleSubject.next(true);
}
hidePreloader() {
this.isPreloaderVisibleSubject.next(false);
}
}
从'@angular/core'导入{Injectable};
从“rxjs”导入{BehaviorSubject,Observable};
@注射的({
providedIn:'根'
})
导出类预处理服务{
private isPreloadServiceSubject:BehaviorSubject=新的BehaviorSubject(false);
private PrevierProgressSubject:BehaviorSubject=新的BehaviorSubject(0);
ispreloadervible:Observable=this.ispreloaderviblesubject.asObservable();
preforeProgress:Observable=this.preforeProgressSubject.asObservable();
构造函数(){}
updatePreloaderProgress(值:number){
this.prepareProgressSubject.next(值);
}
showpreload(){
this.ispreloadServiceSubject.next(true);
}
hidePreloader(){
this.ispreloadServiceSubject.next(false);
}
}
但我不知道如何将消息和预加载结合起来,如果你的事件意味着它是加载的,那么就这样说:
ngOnInit():void{
this.preforerService.showPreload();
window.addEventListener('message',函数(事件){
this.preforerService.hidePreloader();
});
}
尝试下面的代码。我相信这会解决你的问题
ngOnInit(): void {
var self = this;
this.preloaderService.showPreloader();
window.addEventListener('message', function(event) {
self.preloaderService.hidePreloader();
});
}
确实不清楚您的要求是什么,但我认为您只是想添加
这个.preforerService.hidePreloader()代码>到您拥有的console.log(事件)的位置代码>属性“PreforerService”在类型“Window”上不存在。16这个.preforerService.hidePreloader()~~~~~~~~~~~~~~~~我不知道什么是prederservice
。我也看不到你的错误-很难帮助你使用这个。PreforerService
如果这是你的服务错误,可能你的库有错误?我添加了PreforerService