angular - 如果没有 JSON 数据,在组件中隐藏 div
问题描述
我有一个名为的组件,details
它是一个child
组件,它将显示来自另一个子组件的选定对象属性,list
如下图所示:
details.component.html
<div classs="details-sec">
<h3>Customer Details </h3>
<div>Name : {{contact?.name}}</div>
<div>Age : {{contact?.age}}</div>
</div>
details.component.ts
import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';
@Component({
selector: 'app-details',
templateUrl: './details.component.html',
styleUrls: ['./details.component.css']
})
export class DetailsComponent {
@Input()
public contact;
}
预期结果:如果list
组件没有任何数据要发出,
- 然后在
details
组件中它应该隐藏details-sec
(即姓名,年龄) - 应该显示一些文本。
像这样的东西:
试过这个问题,它对我没有用。
解决方案
您可以简单地检查contact
属性以显示详细信息,否则显示带有所需消息的不同模板。
例子:
details.component.html
<div classs="details-sec" *ngIf="contact; else noDetails">
<h3>Customer Details </h3>
<div>Name : {{contact?.name}}</div>
<div>Age : {{contact?.age}}</div>
</div>
<ng-template #noDetails>
<div>
<p>No customer available... </p>
</div>
</ng-template>
推荐阅读
- c++ - 使用带括号表达式的逗号运算符示例
- c# - 使用 Apache 作为反向代理时,ASP.NET Core Razor 无法设置 cookie
- azure - 如何将放置在 azure 文件存储中的 .csv 文件的内容复制到 powershell 变量?
- mysql - mysql更新脚本不更新数据库
- webpack-4 - Webpack 加载相对于主输出文件的分割块
- java - Java 中如何管理 Metaspace 和 Native Area 内存?
- php - 在 Docker 文件中自定义安装
- clickatell - Clickatell 使用 Rest API 获取路由错误
- android - 构建 apk 发布时的密钥库和密钥别名错误
- node.js - 带有nodejs(express)和mysql的小“浏览器游戏”