首页 文章

如何检查视图中是否显示角度组件

提问于
浏览
-1

在我的角度项目中,我使用自定义标签(app-movie-card)显示使用ngFor的电影卡片 . 我使用自定义管道来过滤电影 . 如果没有匹配的电影来搜索用户,则视图不会按预期显示任何电影卡 . 在这种情况下,如何使用ng-template或其他方式显示“没有与您的输入相匹配的电影”等替代消息?

谢谢 !

Template image

Filter pipe image

1 回答

  • 0

    如果没有电影,您可以定义一些 #elseBlock (您在哪里放置关于没有电影的信息) .

    所以,逻辑将是:

    <div *ngIf="moviesCount>0; else elseBlock">
      <div *ngFor=""....
    </div>
    <ng-template #elseBlock>your message here...</ng-template>
    

    参考:https://angular.io/api/common/NgIf#showing-an-alternative-template-using-else

    [UPDATE]

    一般来说,你没有过滤/排序的管道 . 您可能从服务器API获取已排序/有序列表,或者,如果您想在客户端对其进行排序,您将在组件内部使用某些功能对某些属性进行排序/过滤 .

    在您的特定示例中,一种方法可能是这样的:您将拥有属性 movies . 那么你会有方法,例如 filterByType()filterByTitle() . 这些方法会采用一些数组和过滤条件,因此,他们会将过滤后的数组分配给 movies 属性 . 然后,您可以在没有管道的情况下将 movies 属性绑定到模板 .

    第一个明显的好处是,您立即知道 movies (已过滤)数组的 length ,您可以检查它是否为0,在这种情况下,您将显示 <ng-template>... 消息部分 .

相关问题