【问题标题】:PrimeNG table binding to a 2-dimensional arrayPrimeNG 表绑定到二维数组
【发布时间】:2019-10-25 21:02:50
【问题描述】:

我必须为我的 PrimeNG 表动态生成数据源,因为我不知道我将拥有多少列,甚至不知道每列的标题是什么。我需要表格可以通过 2 路数据绑定进行编辑。我正在尝试使用二维数组来保存数据(gridData:number [] [])并动态创建列列表,如{index:0,header:“col1”}等。显示网格正确地使用正确的初始值,但更改不会记录回网格。 PrimeNG 文档指出元素上的 [editablecolumnfield] 指令应命名为“字段”,但这些条目没有字段名称,只是索引,因为数据表不是具有成员的对象数组,而是具有索引。甚至可以将二维数据绑定到二维数组吗?

我是 Angular 开发和 PrimeNG 的新手,所以如果我做错了,请指出正确的方向。

  <p-table [columns]="gridCols" [value]="gridData"> 
    <ng-template pTemplate="header" let-gridCols>
      <tr>
        <th *ngFor="let col of gridCols">
          {{col.header}}
        </th>
      </tr>
    </ng-template>
    <ng-template pTemplate="body" let-gridRow let-columns="gridCols">
      <tr>
        <td *ngFor="let col of gridCols" [pEditableColumn]="gridRow" [pEditableColumnField]="col.index">
          <p-cellEditor>
            <ng-template pTemplate="input">
              <input type="number" ([ngModel])="gridRow[col.index]" /> 
            </ng-template>
            <ng-template pTemplate="output">
              {{gridRow[col.index]}}
            </ng-template>
          </p-cellEditor>
        </td>>
      </tr>
    </ng-template>
  </p-table>

【问题讨论】:

    标签: angular multidimensional-array data-binding primeng-datatable


    【解决方案1】:

    这是那些邪恶的细节错误之一......您将输入字段上的双向数据绑定的括号放错了位置。 [] 括号似乎必须是 ngModel 周围的外括号。

    你的:

    <input type="number" ([ngModel])="gridRow[col.index]" />
    

    正确:

    <input type="number" [(ngModel)]="gridRow[col.index]" />
    

    除此之外,2-way 数据绑定适用于二维数组。

    【讨论】:

    • 谢谢!我已经放弃了得到这个答案。我会尝试一下,如果它解决了我的问题,我会将其标记为答案。
    猜你喜欢
    • 2012-02-22
    • 2022-07-22
    • 2016-09-15
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多