我想在选项中使用带有rowCallback的数据表向表中添加条件格式。表格的大小将在Shiny应用程序中更改,我将根据第2列到最后一列中的值是否大于第1列中的值来应用背景。因此,我想在指定要格式化的列时加入for循环。
当我硬编码要将条件格式应用于哪些列时,以下运行正常:
if (!require(devtools)) install.packages("devtools"); library(devtools)
if (!require(DT)) devtools::install_github("rstudio/DT"); library(DT)
trial <- matrix(c(3,4,1,2,1,2,4,2,5), ncol=3)
colnames(trial) <- c('value', 'min', 'max')
trial.table <- data.frame(trial)
DT::datatable(trial.table,options = list(rowCallback = JS('
function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if (parseFloat(aData[2]) > aData[1])
$("td:eq(2)", nRow).css("background-color", "orange");
if (parseFloat(aData[2]) > aData[1])
$("td:eq(3)", nRow).css("background-color", "orange");
}')))
但是,当我尝试循环时,显示为空白:
DT::datatable(trial.table,options = list(rowCallback = JS('
function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
for (i =2, i < 4, i++) {
if (parseFloat(aData[i]) > aData[1])
$("td:eq(i)", nRow).css("background-color", "orange");
}
}')))
for for循环在R中的Javascript中工作吗?
答案 0 :(得分:0)
你缺少一个右大括号来关闭for循环。
答案 1 :(得分:0)
好的,我想出来了。这里有2个问题
-
public function getNameAttribute($value) {
$name = json_decode($value, true);
return $name[app()->getLocale()];
}