gpt4 book ai didi

r - Shiny 的应用程序 : is it possible to render HTML in validation messages?

转载 作者:行者123 更新时间:2023-12-01 04:29:09 25 4
gpt4 key购买 nike

有没有办法在 Shiny 的验证消息中呈现 HTML?我使用 HTML 尝试了不同的方法包装,tags$...功能,以及单独的 htmlOutput对于验证消息,但无法使它们中的任何一个工作。这是一个显示此问题的简单示例应用程序 - select在验证消息中应该是粗体,但 HTML 标签被转义(我知道是人为的例子,但希望传达这个想法,我主要想用它来在消息中包含 fa 图标):

runApp(
list(
ui = fluidPage(

titlePanel("Validation App"),

sidebarLayout(
sidebarPanel(
selectInput("data", label = "Data set", choices = c("", "mtcars"))
),

mainPanel(tableOutput("table"))
)
),

server = function(input, output) {

data <- reactive({

# validate test
validate(
need(input$data != "", HTML("Please <strong>select</strong> a data set"))
)

get(input$data, 'package:datasets')
})

output$table <- renderTable(head(data()))

}

)
)

最佳答案

最简单的解决方案是使用 uiOutput和内部 renderUI函数放一个 if来验证输入。下面的代码是一个使用 HTML 的例子和 tags$...职能。您也可以放置一个图标。

library(shiny)
runApp(
list(
ui = fluidPage(
titlePanel("Validation App"),
sidebarLayout(
sidebarPanel(
selectInput("data", label = "Data set", choices = c("", "mtcars"))
),
mainPanel(uiOutput("tableUI"))
)
),

server = function(input, output) {
data <- reactive({
get(input$data, 'package:datasets')
})

output$tableUI <- renderUI({
if (input$data == "") {
div(
HTML("Please <strong>select</strong> a data set"),
tags$p(icon("exclamation"), "Please",tags$strong("select"), "a data set")
)
} else {
tableOutput("table")
}
})

output$table <- renderTable(head(data()))
}

)
)

关于r - Shiny 的应用程序 : is it possible to render HTML in validation messages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55638977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com