Es gibt viele Fragen über conditionalPanel
in R glänzend, aber ich verstehe immer noch nicht, wie ich Werte verwenden kann, die von server.R für conditionalPanel
erstellt werden. Hier ist, was ich gerne tun würde: Ich habe eine URL wie http://some-url.com/php/session_check.php?sid=session_id. Wenn die session_id
mit einer 0 beginnt, wie http://some-url.com/php/session_check.php?sid=00221245, wird eine Zeichenfolge mit einem Benutzernamen zurückgegeben (z. B. "testuser"). Wenn die session_id mit einer anderen Zahl als 0 beginnt, wird 0 wie http://some-url.com/php/session_check.php?sid=10221245 zurückgegeben. Jetzt möchte ich ein Panel ausblenden, je nachdem, ob die a 0 oder ein Benutzername zurückgegeben wird. Deshalb versuche ich, so etwas zu tun:R glänzend conditionalPanel Ausgabewert
conditionalPanel(
condition="output.disable_ui!=0"
Ich weiß, dass dies die falsche ist, aber ich weiß nicht wirklich verstehen, wie das condition
Argument für outputs
funktioniert, wie das gleiche funktionieren wird, wenn ich tun würde dies alle input
von ui.R
.
Hier ist mein Beispielcode:
server.R
library(shiny)
library(raster)
library(rgdal)
shinyServer(function(input, output, clientData) {
output$disable_ui<-reactive({
query<-parseQueryString(clientData$url_search)
url_path<-paste(sep="","http://some-url.com/php/session_check.php?sid=",query, collapse="")
read.table(url_path)
})
data <- reactive({
inFile <- input$example_layer
if (is.null(inFile))
return(NULL)
raster.file<- raster(inFile$datapath)
})
output$raster.plot <- renderPrint({
"Nothing to see here"
})
})
ui.R
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("test"),
sidebarPanel(
conditionalPanel(
condition="output.disable_ui!=0",
#File Upload
fileInput('example_layer', 'Choose Raster Layer (ASCII)', multiple=FALSE, accept='asc')
)),
mainPanel(
verbatimTextOutput("raster.plot")
)
))
Wenn dies würde funktionieren, was passieren würde, ist, dass eine Datei-Upload-Button angezeigt wird (oder nicht), je nach der URL. Es wird keine Datei hochgeladen. Der Benutzer würde aufgefordert, nach dem Drücken der Schaltfläche nach einer Datei zu suchen und sie auszuwählen. Ist es das was du willst? – Vincent
Es geht nicht wirklich um die Schaltfläche zum Hochladen von Dateien. Alles was ich will ist, dass das Sidebar-Panel oder sogar alle Panels nicht angezeigt werden, wenn die URL eine '0' zurückgibt und alle Panel angezeigt werden, wenn die URL einen 'Benutzernamen' zurückgibt. –