我正在尝试将下拉列表中的选定值绑定到我的文章,该文章具有与下拉列表源相同类型的属性。但不知何故,当我在控制台登录我的文章时,我的属性中没有值,它应该包含一个选定的下拉值。
这是我的代码:
在打字稿中我有:
article: Article;
mainGroups: Group[];
subGroups: Group[];
在init上我用数据填充mainGroups和subGroups,如下所示:
ngOnInit() {
this._groupService.getAll().subscribe(groups => this.mainGroups = groups);
this._groupService.getAllSubGroups().subscribe(subgroups => this.subGroups = subgroups);
}
稍后在html中,我正在循环显示我的mainGroups
和subGroups
中的值:
<div class="form-group">
<label class="control-label dash-control-label col-xs-3">Main group:</label>
<div class="col-xs-9">
<select class="form-control dash-form-control select2" style="width: 100%;"
data-minimum-results-for-search="Infinity" name="articleGroups" required [(ngModel)]="article.mainGroup">
<option disabled [ngValue]="null">-/-</option>
<option [ngValue]="group" *ngFor="let group of mainGroups">{{group.title}}</option>
</select>
</div>
</div>
<!--Sub group-->
<div class="form-group">
<label class="control-label dash-control-label col-xs-3">Sub group:</label>
<div class="col-xs-9">
<select class="form-control dash-form-control select2" style="width: 100%;" name="subGroup" required [(ngModel)]="article.subGroup">
<option disabled [ngValue]="null">-/-</option>
<option [ngValue]="subgroup" *ngFor="let subgroup of subGroups">{{subgroup.title}}</option>
</select>
</div>
</div>
正如你所看到的那些人我在第一次下拉列表中写道:[(ngModel)]="article.mainGroup"
,我也说过:[ngValue]="group" *ngFor="let group of mainGroups"
所以基本上这个[ngValue]="group"
应该从*ngFor
中获取价值并将其存储到article.mainGroup
中?
但是当我执行控制台日志时,我根本看不到article.mainGroup
属性,即使它是在article.ts
模型中定义的......所以这意味着article.mainGroup
属性为空(因为在console.log(article
)中不可见?
答案 0 :(得分:0)
我猜你需要这样的东西:
<select class="form-control" [(ngModel)]="size" name="sizeValue" #sizeValue="ngModel">
<option *ngFor="let size of sizes" [value]="size">{{size}}</option>
</select>
请注意#sizeValue="ngModel"
请在此处查看我的原始答案: https://stackoverflow.com/a/46866804/1546042