gpt4 book ai didi

javascript - Angular 6 主题没有捕捉到订阅事件?

转载 作者:行者123 更新时间:2023-11-30 14:18:49 26 4
gpt4 key购买 nike

我创建了一个包含加载程序的组件:

@Component({
selector: 'app-loader',
templateUrl: './loader.component.html',
styleUrls: ['./loader.component.scss'],
providers: [LoaderService]
})
export class LoaderComponent implements OnInit {

showloader: boolean = false;

constructor (private loader_service:LoaderService) {}

ngOnInit () {
this.loader_service.showLoaderEventChange.subscribe(state => {
console.log(state); // Nothing prints !!
this.showloader = state;
})
}
}

我有一个从另一个组件调用的服务,调用确实有效:

public grabJsonData (enviroment: string, language: string) {
this.loader_service.showLoader(true);
}

它使用LoaderService:

@Injectable({
providedIn: 'root'
})
export class LoaderService {

showLoaderEventChange = new Subject<any>();

constructor() { }

showLoader(state){
this.showLoaderEventChange.next(state);
}

}

加载器组件使用LoaderService,监听showLoaderEventChange传递给next()

但是当我执行 this.showLoaderEventChange.next(state) 时,它不会在 subscribe 函数中捕获任何内容。

我错过了什么吗?

最佳答案

这是因为您没有为您的组件使用相同的service实例,因为您将它注入(inject)到root中>加载器组件

尝试从您的 Loadercomponent 中删除 Providers : [LoaderService]

关于javascript - Angular 6 主题没有捕捉到订阅事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53082167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com