在 Scala 模板中呈现模型对象列表(矩阵)的“最佳”方法是什么,例如:
public class Column extends Model {
public String columnLabel;
@OneToMany
public List cells;
}
public class Cell extends Model {
public String rowLabel; //index
public BigDecimal value;
}
对于这个问题,cells.size() 和 rowLabel 对于所有列对象都是一致的。控制器将 List[Column] 返回给视图。我尝试使用助手将列表转换为数组:
@matrix(list: List[Column]):Array = @{
var rowCount = list.head.values.size()
var colCount = list.size()
var m = Array.ofDim[String](rowCount,colCount)
for (i <- 0 to rowCount-1) {
for ( j <- 0 to colCount-1) {
matrix(i)(j) = list(j).cells(i).value.toString();
}
}
return m;
}
然后在视图中:
<div>
@for(i <- 1 to currentPage.getList.head.values.size()) {
<div class="row">
@for(j <- 1 to currentPage.getList.size()) {
<div class="col-md-1">@matrix(currentPage.getList)(i)(j)</div>
}
</div>
}
</div>
但当然这只是提取矩阵值而不是列或行标签。
列表列表中是否有一些 Scala 数组优点?效率很重要,因为数组大小约为。20 列 x 2000 行。还是让控制器显式返回矩阵行而不是尝试在视图中转换它们是更好的方法?