在 Angulardart 中使用嵌套列表创建 table

Creating a table with nested lists in Angulardart

我正在尝试在 Angulardart 中构建一个代表 List<List<int>> 的 table。

这是我的模板文件的内容:

<table>
    <tbody>
        <tr *ngFor="#row of cells">
            <td *ngFor="#cell of row">
                <input type="number" #cell (keyup)="0"/>
            </td>
        </tr>
    </tbody>
</table>

列表初始化如下:

class Grid {
    const GRID_SIZE = 9;
    List<List<int>> cells = new List(GRID_SIZE);

    Grid() {
        cells.forEach((x) => x = new List(GRID_SIZE));
    }
}

但是,在呈现的 HTML 中我只看到 9 个 <tr> 空标签,里面没有 <td>s。

我错过了什么?

原来问题出在网格初始化中:用零列表填充的正确初始化代码是

cells.fillRange(0, cells.length, new List.filled(GRID_SIZE, 0));

问题中的初始化代码仅用 GRID_SIZE 个空值填充了主列表。

当您调用此行时:

cells.forEach((x) => x = new List(GRID_SIZE));

您实际上是在用一个新值替换 x :您没有干预 x 内部,而是创建了一个新值。

List<String> myList = ['my', 'original', 'list'];

void yourForLoopFunctionSimulation( List<String> x ) {
  x = new List.filled(GRID_SIZE, 0);
  //you can work with the new x value here, but it won't change the argument that was passed to you
}

//if you run 
yourForLoopFunctionSimulation( myList );
print( myList ); // result : ['my', 'original', 'list'];