如何防止在Angular 4.0中渲染应用程序组件,直到API调用完成

问题描述 投票:0回答:2
APP渲染,然后在API调用完成后不使用适当的内容更新。具体来说,我有一个从API返回的CSS类名称,并且需要确保在获得该属性值(以及所有返回的内容)之前,请确保Angular App不会呈现,并且可以在我的视图模板中正确设置该类。当API调用完成后,某些内容将正确更新,但是会更改CSS/SASS值的少数属性不会及时设置,并且只有在单击页面上的某些内容(例如导航菜单项)之后才能看到它们,然后显示不同的颜色和宽度等。

触发手动重新渲染并不是要去此处的方法,因为页面会切碎,并且页面加载后您会看到草率的更新。我不希望用户看到这种情况的发生,我只想在完成API调用后展示完全渲染的页面,我知道我需要什么自定义SASS主题以及所有这些爵士乐。 我已经在看这几天了,并且知道在这种情况下,生命周挂钩对我来说是没有用的,我无法找到一种方法来强迫同步的呼叫来暂停Angular的其他一切,直到完成为止。非常感谢建议。

指令 *ngif =“”模板,直到返回http serviceservice

是Angular中的一种内置方式,称为App_Initializer。在app.module.ts中,在提供商阵列中

providers: [ { provide: APP_INITIALIZER, useFactory: initializeApp, deps: [HomeService], multi: true } ]

和同一文件中的方法:

angular components render synchronous resolver
2个回答
1
投票
the homeservice中的方法:

initializeApp(store_id?: number): Promise<void> { return new Promise((resolve, reject) => { //your HTTP call or waiting logic }); }

0
投票
现在整个应用程序及其组件都将等到解决承诺得到解决


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.