我正在用R中的Shiny创建一个Web应用程序。我有一个我在地图上绘制的数据集。使用checkboxGroupInput小部件,用户可以选择他们想要在地图上看到的类别(或不)。但是,数据集会随着时间而改变,并非所有类别都可用。为了清楚哪些在当前集合中可用,哪些不是,我想将可用类别设置为粗体。更改checkboxGroupInput标签的字体标记(即粗体,斜体)
到目前为止,我还没有能够得到一个checkboxGroupInput
小工具,用复选框显示粗体标签。有没有办法做到这一点?我想要一些标签是大胆的,而其他的则不是。此外,使用updateCheckboxGroupInput
我可以更改选项(即仅显示可用类别),但这不是我想要/需要的。
我曾尝试例如:
x <- list("<b>A</b>"=1, "<b>B</b>"=2, "C"=3)
checkboxGroupInput(inputId="test", label="this is a test", choices=x)
但是这种方法只显示格式的标签,在用户界面中的文本。使用Shiny的HTML()
功能的解决方案似乎也不起作用,或者...我做错了。
任何想法?
下面是使用以上描述的方法(其不工作)一个简单的闪亮接口例如:
library("shiny")
x <- list("<b>A</b>"=1, "<b>B</b>"=2, "C"=3)
server = function(input, output) {}
ui = fluidPage(
checkboxGroupInput(inputId="test", label="this is a test", choices=x)
)
runApp(list(ui = ui, server = server))
下一个例子的工作,但初始化复选框团时,它是一个解决方案。在服务器部分中启用observe
功能表明相同的解决方案不适用于updateCheckboxGroupInput
。这是有道理的,因为该函数不返回HTML代码。我不知道如何访问该更新函数的输出,或者如何解决它。
library("shiny")
x <- list("<b>A</b>"=1, "<b>B</b>"=2, "C"=3)
y <- list("<b>D</b>"=1, "<b>E</b>"=2, "F"=3)
server = function(input, output, session) {
# observe({
# input$test
# gsub(">", ">", gsub("<", "<", updateCheckboxGroupInput(session, "test", choices=y)))
# })
}
ui = fluidPage(
gsub(">", ">", gsub("<", "<", checkboxGroupInput(inputId="test", label="this is a test", choices=x)))
)
runApp(list(ui = ui, server = server))