如何在Angular 4.0中阻止应用程序组件呈现,直到API调用完成

时间:2017-06-13 18:55:23

标签: angular components render synchronous resolver

我正在构建这个Angular 4.0应用程序来解析启动时的URL(让我们说1.mysite.com或2.mysite.com,指向相同的角应用程序)我需要渲染在应用启动时进行API调用后,页面上的不同内容取决于不同的URL。

我在API调用完成之前看到应用呈现,然后在API调用完成后不使用正确的内容进行更新。具体来说,我有一个从API返回的css类名,我需要确保角度应用程序不会呈现,直到我获得该属性值(以及所有返回的内容),并可以在我的正确设置该类查看模板。 API调用完成后,一些内容将正确更新,但是几个不会改变css / sass值的属性不能及时设置,只有在点击页面上的内容后才能看到它们(如导航菜单项) )然后会出现不同的颜色和宽度等。

触发手动重新渲染不是这里的方法,因为页面将会切断,并且您会在页面加载后看到草率更新。我不希望用户看到这种情况发生,我只想在API调用完成时呈现完全呈现的页面,我知道我需要的自定义sass主题和所有爵士乐。

我已经看了好几天了,知道在这种情况下生命周期挂钩对我来说没用,而且我无法找到一种强制同步调用暂停Angular中其他所有内容的方法,直到它完成。建议非常感谢。

1 个答案:

答案 0 :(得分:0)

将指令* ngIf =“”添加到模板,直到返回服务的http响应