ngFor 中的 Angular 双向绑定(bind)

标签 angular

在 Anguar 6 中,我有一个 ngFor,其中包含一个选择字段。该字段的 selected-value 应绑定(bind)到我在 ngFor 中使用的 SeatBookingModel 的 Category 属性。由于这是 CategoryModel 类型,我可以显示 CategoryModel 的 .Price 属性。

我在这里做错了什么?未设置类别的值。 模板:

 <form>
  <table class="table">
    <tbody *ngFor="let bk of seatsReserved; let in=index">
      <tr>
        <td>
          <span>{{ bk.SeatNumber }} </span>
        </td>
        <td>
           <select class="form-control" name="ddlCategory_{{in}}">
            <option *ngFor="let cat of getCategories(bk.SeatNumber)" [(ngValue)]="bk.Category" >{{cat.Name}}</option>
          </select>
        </td>
        <td>
         <span>{{ bk.Category.Price }}</span>
        </td>
      </tr>
    </tbody>
    </table>

Controller 部分:

export class SeatPlanComponent implements OnInit {

  constructor(private route: ActivatedRoute, private dataService: DataService) { 
  }

  seatsAlreadyTaken: Array<String>;

  seatsReserved: Array<SeatBookingModel>;

getCategories(seatNr: String) {
    let mock1 = new CategoryModel();
    mock1.Id = 1;
    mock1.Name = "Erwachsen";
    mock1.Price = 27.00;

    let mock2 = new CategoryModel();
    mock2.Id = 2;
    mock2.Name = "Student";
    mock2.Price = 22.00;
    return [mock1, mock2];
  }

座位预订模型:

export class SeatBookingModel {
    SeatNumber : String;
    Category: CategoryModel;
}

类别模型:

export class CategoryModel {
    Id : Number;
    Name: String;
    Price: Number;
}

最佳答案

ngValue 指令应该用作属性绑定(bind),它不是双向可绑定(bind)指令。

[(ngValue)]="bk.Category"

应该是

[ngValue]="bk.Category"

关于ngFor 中的 Angular 双向绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51694454/

相关文章:

angular - 如何忽略 TypeScript 错误 TS2339 - 类型上不存在属性

angular - 在浏览器上关闭 Angular Material 对话框

angular - 如何在 Angular4 中获取 FormControl 的值

angular - 错误 : File lib. dom.d.ts 没有源文件

javascript - 无法测试 canActivate() 的错误路径 - Angular2+

angular - 传递正确的上下文以在 Angular 的对话数据中运行

css - 设置菜单样式

从 typescript 调用 Javascript 原型(prototype)函数

angular - 通过 Angular 组件将函数作为参数传递给(单击)事件

html - Angular2 禁用按钮