在 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'];
我正在尝试在 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'];