angular2中的隐藏属性[hidden]在第二个因此显示元素后被触发

时间:2017-09-28 07:11:02

标签: javascript html angular angular2-directives

我在我的应用中使用[hidden]属性来隐藏某些基于特定条件的元素。场景是,我有一个div我在哪里显示结果,我有一个div我在哪里显示文字"没有结果"。两个div都有条件[hidden]属性应用于它们。理想情况是,当页面加载和结果来自服务器时,应该没有"没有结果" div显示在页面上,当服务器没有结果时,应该测试"没有结果"。但问题是当页面加载时,从服务器加载结果需要一秒钟,并且在1秒内显示第二个div,表示"没有结果"。每次刷新页面时都会发生这种情况。我想防止这种行为,即我想要一个干净的页面,在数据来自服务器后,我想显示结果或"没有结果"页面上的数据,但现在我对如何实现这一点感到困惑。有帮助吗?

1 个答案:

答案 0 :(得分:0)

而不是[hidden],更好的解决方案是将ngIfelse syntax一起使用:

<div *ngIf="data |async; else elseBlock">Results</div>
<ng-template #elseBlock>No Results</ng-template>