J'ai une application brillante avec une interface utilisateur entièrement écrite en HTML et j'ai besoin que l'élément HTML avec un id spécifique soit caché/affiché, selon que les données répondent à des conditions spécifiques.
Voici une version simplifiée de ce que j'ai déjà, j'ai utilisé ShinyJS, mais les fonctions show() et hide() ne font rien dans mon application. Que dois-je faire pour que cela fonctionne ? Si ce n'est pas possible avec ShinyJS, quelle est l'autre façon d'afficher/cacher des éléments html dans une application Shiny ? Merci d'avance.
app.R
server <- function(input, output) {
library(shinyjs)
useShinyjs(html = TRUE)
data <- reactive({
return("abcde")
})
observe({
if ( data() == "abcde" ) {
hide("visibility-area")
} else {
show("visibility-area")
}
})
output$some-output <- renderPrint({
cat(data())
})
}
shinyApp(ui = htmlTemplate("www/index.html"), server)
www/index.html
<!DOCTYPE html>
<html>
<head>
<script src="shinyjs/inject.js"></script>
<script src="shared/jquery.js" type="text/javascript"></script>
<script src="shared/shiny.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="shared/shiny.css"/>
<title>test</title>
</head>
<body>
<div id="visibility-area">
<p><span id="some-output" class="shiny-text-output"></span></p>
</div>
</body>
</html>
global.R
shiny::addResourcePath("shinyjs", system.file("srcjs", package = "shinyjs"))