Angular2:等待服务初始化
发布时间:2020-12-17 17:16:10 所属栏目:安全 来源:网络整理
导读:有没有办法等待服务初始化以加载其他组件? 我需要在显示组件(需要数据)之前同步加载一些数据,我不想使用promises / observables(使用那些用于异步调用) ngIf似乎没有削减它(组件加载,即使如果不匹配). 我没有使用路由器(不需要它用于应用程序),所以我不认为
有没有办法等待服务初始化以加载其他组件?
我需要在显示组件(需要数据)之前同步加载一些数据,我不想使用promises / observables(使用那些用于异步调用) ngIf似乎没有削减它(组件加载,即使如果不匹配). 我没有使用路由器(不需要它用于应用程序),所以我不认为@CanActivate在这种情况下是合适的. 有任何想法吗? @Component({ selector: 'my-app',directives: [MyDirective],template: ` <div> <div *ngIf="!initialized">Loading...</div> <div *ngIf="initialized"><myDirective>should wait for service to be initialized</myDirective></div> </div>` }) export class AppComponent { initialized = false; constructor(_myService: MyService) { this._myService = _myService; } ngOnInit() { this._myService.init() .then(() => { setTimeout( () => this.initialized = true,2000); } ); } } 解决方法
我不确定我是否正确理解了这个问题,但是从我得到的结果来看,我认为你可以用初始值(占位符)创建一个模型实例,并允许你的组件用这个模型初始化,然后,当你的数据是准备好后,更改模型实例值,这些值将反映到您的组件.
这样,您的组件不需要等待,它只是使用占位符数据,您当然可以在组件内部进行测试,并相应地显示您的模板,当数据从父级准备就绪,更新它时,更新孩子. 我希望这有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |