感谢您的宝贵时间。
我正在尝试使一个闪亮的应用程序正常工作,并且由于某种原因,在呈现DT
数据表时,我在突出显示问题上遇到了困难。
例如,这有效:
output$DT = DT::renderDataTable({DT = datatable(DT,options = list(searching = FALSE,paging = FALSE,lengthChange = FALSE,ordering = FALSE,rownames= FALSE)) %>%
formatStyle('TEST',backgroundColor = styleEqual(c(1,2,3,4,5), c('chartreuse', 'chartreuse4','yellow','indianred','indianred4'))) )})
但是,当尝试添加此额外的行时,突出显示没有出现,但是代码仍在运行:
%>%
formatStyle('TEST2',backgroundColor = styleEqual(c(TRUE,FALSE),c('green','red'))
我也尝试过styleInterval,并且得到相同的结果。
谢谢。
可复制的代码:
ui <- fluidPage(
dataTableOutput('DF')
)
server <- function(input, output, session) {
DF = as.data.frame(matrix(NA,nrow=2,ncol = 2))
DF$V1 = c(TRUE,FALSE)
DF$V2 = c(1,2)
output$DF = renderDataTable(DF)
output$DF = DT::renderDataTable({DF = datatable(DF,options = list(searching = FALSE,paging = FALSE,lengthChange = FALSE,ordering = FALSE,rownames= FALSE)) %>%
formatStyle('V2',backgroundColor = styleEqual(c(1,2,3,4,5), c('chartreuse', 'blue','yellow','indianred','indianred4'))) %>%
formatStyle('V1',backgroundColor = styleEqual(c(TRUE,FALSE),c('green','red')))})
}
shinyApp(ui = ui, server = server) # RUN THE APPLICATION
答案 0 :(得分:0)
> styleEqual(c(TRUE,FALSE),c('green','red'))
[1] "value == 'TRUE' ? 'green' : value == 'FALSE' ? 'red' : ''"
attr(,"class")
[1] "JS_EVAL"
value
不是'TRUE'
或'FALSE'
,而是true
或false
。
您可以这样做:
...... %>%
formatStyle('V1',
backgroundColor = JS("value == true ? 'green' : value == false ? 'red' : ''"))