加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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);
            }
        );
    }
}

解决方法

我不确定我是否正确理解了这个问题,但是从我得到的结果来看,我认为你可以用初始值(占位符)创建一个模型实例,并允许你的组件用这个模型初始化,然后,当你的数据是准备好后,更改模型实例值,这些值将反映到您的组件.

这样,您的组件不需要等待,它只是使用占位符数据,您当然可以在组件内部进行测试,并相应地显示您的模板,当数据从父级准备就绪,更新它时,更新孩子.

我希望这有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读