使用select2下拉值不绑定到我的文章 - Angular

时间:2018-04-19 11:15:15

标签: javascript angular typescript

我正在尝试将下拉列表中的选定值绑定到我的文章,该文章具有与下拉列表源相同类型的属性。但不知何故,当我在控制台登录我的文章时,我的属性中没有值,它应该包含一个选定的下拉值。

这是我的代码:

在打字稿中我有:

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中,我正在循环显示我的mainGroupssubGroups中的值:

<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)中不可见?

1 个答案:

答案 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