angular - 如何通过复选框发布对象数组
问题描述
我正在尝试初始化对象类型属性复选框的数组,但它不起作用。(对不起,我的英语不好)
楷模
激活
import {TypeActif} from './model.type-actif';
import {CritereActif} from './model.critere-actif';
export class Actif{
ref: string;
nom: string = '';
type_actif: TypeActif = new TypeActif();
lesCriteresActifs: Array<CritereActif> = new Array<CritereActif>();
}
标准活动
import {Actif} from './model.actif';
import {LesCriteres} from './model.les-criteres';
import {LesValeurs} from './model.les-valeurs';
export class CritereActif{
id: number;
actif: Actif = new Actif();
critere: LesCriteres = new LesCriteres();
valeur: LesValeurs = new LesValeurs();
}
标准
export class LesCriteres{
code: string = null;
nom: string = '';
}
actif.component.html
<div class="form-group">
<label>Critères : </label>
<div class="checkbox-inline" *ngFor="let l of lesCriteres; let i= index">
<label>
<input type="checkbox" [value]="l.code" [(ngModel)]="actif.lesCriteresActifs[i].critere.code">{{l.code}}
</label>
</div>
</div>
我想在表“lesCritesActifs”中添加用户将检查的“lesCriteres”的每个元素。
在我添加到行中之前,一切正常:
[(ngModel)]="actif.lesCriteresActifs[i].critere.code"
我在 web 开发控制台中有这个错误:
ERROR TypeError: "_co.actif.lesCriteresActifs[_v.context.index] is undefined"
谢谢 !
解决方案
问题是你 lesCriteresActifs
是空的,你试图访问一个索引.lesCriteresActifs[_v.context.index]
,这就是为什么未定义并且你无法访问.critere.code
部分解决方案可能是
[(ngModel)]="actif.lesCriteresActifs[i]?.critere.code"
推荐阅读
- arduino - 用于 NUCLEO-F446RE 的 STM32duino 时钟配置
- android - 滚动时GraphView的水平标签问题
- scala - 如何在合并中替换空值并添加
- javascript - jquery 检查父元素中是否有特定的文本,如果有,则在特定的预先存在的子元素之后添加子元素
- vb.net - VB.NET 在图片框中绘制与设备无关的位图
- python - 如何处理依赖的多个主要版本
- javascript - 交换两个 ngx-select 的值
- c - S32K146EVB 擦除/写入闪存时发生读取冲突
- json - 如何在pyspark中将rdd转换为嵌套的json
- php - 大型 php 站点地图(使用数据库连接)可以减慢/阻塞服务器吗?