真的很烦人!我有一个对象数组,我找到了这个解决方案:How to use select/option/NgFor on an array of objects in Angular2
但毕竟我做的与此相同,但是如果我记录我的$事件它是未定义的......可能是因为它是字符串化但在之后没有解析回来。
以下是我的代码示例:
<?php
while ($user = mysqli_fetch_assoc($userQuery)) {
?>
<tr>
<td><?=$user['roepnaam']?></td>
<td><?=$user['naam']?></td>
<td><?=$user['bedrijf']?></td>
</tr>
<?php
}
?>
这是组件代码:
<div class="container">
<div class="row" *ngFor="#condition of conditions;#conditionindex = index">
<div class="col-xs-3">
<select class="form-control" [ngModel]="stringify(condition)" (ngModelChange)="onChange(conditionindex, $event)">
<option *ngFor="#c of catalog;#catalogindex = index" [value]="stringify(c)">
{{c.name}}
</option>
</select>
</div>
<condition-detail [condition]="condition"></condition-detail>
</div>
<a class="btn btn-primary" (click)="newCondition()"><i class="glyphicon glyphicon-plus"></i></a>
请帮帮我。 selectedCondition的控制台日志未定义。
答案 0 :(得分:2)
使用最新的Angular2版本(测试版14),添加了对选择对象的支持。
答案 1 :(得分:1)
已经准备好了:)
这里是解决方案:
<select class="form-control" [ngModel]="condition.name" (ngModelChange)="onChange(conditionindex, $event)">
<option *ngFor="#c of catalog;#catalogindex = index" [value]="c.name">
{{c.name}}
</option>
</select>
组件文件:
onChange(conditionsIndex, selectedCondition:string): void {
this.conditions[conditionsIndex] = this.catalog.find(condition => condition.name == selectedCondition);
}