【发布时间】:2018-11-20 18:36:47
【问题描述】:
我有一张表格,想根据 X(=6) 中不同深浅的蓝色的值 (0-100) 为每个单元格着色。表格显示在 TabPanel 中。
目前我正在使用 shinyjs 调用一个 javascript 函数,该函数选择我的表格并将 CSS 样式添加到 <td> 标签,具体取决于值范围。
问题是,在第一次加载表格时(点击 TabPanel),没有颜色显示,只有在重新加载后才显示。
所以我要么在 R 中寻找解决方案(不需要额外的 Javascript),要么在寻找自动重新加载 Table/TabPanel 的方法。
library(shiny)
ui <- shinyUI(fluidPage(
tableOutput("dataTable")
))
server <- shinyServer(function(input, output) {
output$dataTable <- renderTable({
data <- getDataFromSomeWhere();
//Some operations on data
data
//I want to color every table cell, depening on value (f.e. 0-5 = white, 10-20 = light blue ...)
}, rownames = TRUE, colnames = TRUE)
shinyApp(ui = ui, server = server)
更新 最后我还是选择了 JavaScript 解决方案,但使用了闪亮的特定 js 事件来获得预期的效果:
$(document).on("shiny:value", function(e) {
if (e.name == "myComponent") {
e.preventDefault();
$('#myComponent').html(e.value);
//color code etc.
}
【问题讨论】:
标签: javascript css r html-table shiny