angular - 如果选择的详细信息值在角度 4 中为空,则隐藏输入字段
问题描述
- 我的问题是某些响应具有 serviceName 值 如果我选择其中一个类别,如果 serviceName 为空,则某些响应没有 serviceName 值,它显示错误为“无法读取未定义的属性 'serviceName'”
- 我需要的是,如果选择值为null,则仅在选定值的情况下才能隐藏该字段,它应该显示详细信息如何实现它
- 任何建议都将被接受,谢谢。
<div class="custom-form">
<div class="col-6 col-lg-4" *ngFor="let cat of values">
<div class="tab-wrapper v1">
<div class="list">
<div class="item" >
<div class=tab-btn (click)="onSelect(cat)"><a href="#"><i class="fa fa-plus" aria-hidden="true"></i> {{cat.categoryName}}</a></div>
<div class="tab-content">
<div class=" fl-wrap filter-tags" *ngIf="selected">
<input type="checkbox" name="check1">
<label for="check-a">{{selected?.categoryServicemodel[0].serviceName}} </label>
<input type="checkbox" name="check2">
<label for="check-b">{{selected?.categoryServicemodel[1].serviceName}} </label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
这是我的 component.html 文件
这是我的 component.ts
export class Component{
selected: any ={};
constructor(private router: Router, private mapsAPILoader: MapsAPILoader, private ngZone: NgZone, private service: PostGetService) {
this.service.getAllCategories()
.subscribe((categories:any )=>{
// console.log(categories.json().length);
this.values = categories.json();
console.log(this.values);
})
onSelect(category){
this.selected = category;
console.log(category);
}
}
解决方案
serviceName
尽管并非所有categoryServicemodel
数组都包含两个元素,但由于尝试访问该属性而发生错误。该问题可以通过不在模板中对索引进行硬编码而是使用*ngFor
.
因为isActive
标志不是布尔值,所以复选框不能通过香蕉盒语法直接绑定[(ngModel)]
。
初始值可以转换为带有双重否定“!!”的布尔值 并使用 [ngModel]="!!category.isActive" 绑定到复选框。现在,每次单击复选框时,都必须将其转换为数字并分配给模型。(ngModelChange)="category.isActive = $event ? 1 : 0"
我建议将isActive
标志的类型调整为布尔值。这将使事情变得更容易。
...
<div class="tab-content">
<div class=" fl-wrap filter-tags" *ngIf="selected">
<label *ngFor="let category of selected.categoryServicemodel; let i = index">
<input type="checkbox" [ngModel]="!!category.isActive" (ngModelChange)="category.isActive = $event ? 1 : 0" name="indx{{i}}"> {{category.serviceName}}
</label>
</div>
</div>
...
推荐阅读
- python - 如何返回一个只包含可以形成有效整数或浮点数的字符的字符串?
- apostrophe-cms - 从客户端渲染一个 nunjucks 模板
- python - 随着时间的推移将观察结果扁平化为单行
- loops - 在 v-for 循环中调用方法
- 64-bit - 64 位虚拟地址空间大小
- python-3.x - 如何使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量来签署 Cloud Storage URL?
- javascript - 如何用javascript中的新数据重新加载页面?
- git - 什么是 git 命令来更改模式中的远程文件名?
- google-app-engine - Google App Engine 从 PNG 文件签名中删除回车,损坏图像
- python - 余弦相似度输出不同的scipy vs sklearn