1
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>
하지만
물론 이것은 단지 행렬 값 및하지를 열이나 행을 추출한다 레이블.목록 목록에 사용할 수있는 스칼라 배열의 장점이 있습니까? 배열 크기가 약이므로 효율성이 중요합니다. 20 열 x 2000 행. 아니면 컨트롤러에서 매트릭스 행을보기에서 변환하려고 시도하지 않고 명시 적으로 반환하도록하는 것이 더 나은 방법입니까?
나는 그것이 내게 줄 것이라고 생각합니다. 공통 rowLabel을 가진 행렬을 렌더링하는 것이 아니라 각 열의 값을 가진 행을 렌더링하는 것이 아니라 각 열 객체에 대한 행을 만듭니다. – geeforce
아, 알았어요. 대답을 업데이트 할 것입니다 ... – Ashalynd
실제 삼중 항을 얻기 위해 나는 .map {case (col, (row, value)) => (col, row, value)}'를 zip에 추가해야만했습니다. groupBy :'생성자에서 컴파일 오류로 문제가 발생하여 예상되는 유형으로 인스턴스화 할 수 없습니다. 발견 : (T1, T2, T3) 필요 : List [(String, String, java.math.BigDecimal)] – geeforce