[英]condition as a vector in conditionalPanel using shiny
是否可以在condition
中的conditionalPanel
詢問selectedInput
的輸入是否屬於向量。
很顯然,我認為condition
是一個JavaScript
對象,這里是一個類似的問題在這里 。 但是,我的問題是小玩意兒與眾不同。 我舉了一個簡單的例子:
# ----
library(shiny)
library(shinydashboard)
var array1 = ['a','c', 'f'];
# header ----
header <- dashboardHeader(title = "Example")
#sidebar ----
sidebar <- dashboardSidebar(disable = T)
#body ----
body <- dashboardBody(
fluidRow(
column(
width = 12,
selectInput(
inputId = "control",
label = "choose something:",
choices = c("a",
"b",
"c",
"d",
"e",
"f"),
multiple = TRUE
)
)
),
conditionalPanel(
condition = "input.control.indexOf(array1) > -1",
textInput(inputId = "first", label = "first test")
)
)
# all ui ----
ui <- dashboardPage(
header = header,
sidebar = sidebar,
body = body
)
# server ----
server = shinyServer(function(input, output) {
})
# Run the application
shinyApp(ui = ui, server = server)
我定義了一個js數組
var array1 = ['a','c', 'f'];
但是它不起作用。 任何想法?
我將FASLE
變成multiple
,因為如果有重疊,我不確定您的想法是什么。
它是如何工作的,您需要首先在UI中插入javascript數組。 另外,條件中的JavaScript語法錯誤,正確的語法應為: array1.indexOf(input.control) > -1
以下示例起作用。
# ----
library(shiny)
library(shinydashboard)
# header ----
header <- dashboardHeader(title = "Example")
#sidebar ----
sidebar <- dashboardSidebar(disable = T)
#body ----
body <- dashboardBody(
# insert javascript code in UI -----------------------
tags$head(
tags$script("var array1 = ['a','c', 'f'];")
),
fluidRow(
column(
width = 12,
selectInput(
inputId = "control",
label = "choose something:",
choices = c("a",
"b",
"c",
"d",
"e",
"f"),
multiple = FALSE
)
)
),
conditionalPanel(
condition = "array1.indexOf(input.control) > -1", # change code here
textInput(inputId = "first", label = "first test")
)
)
# all ui ----
ui <- dashboardPage(
header = header,
sidebar = sidebar,
body = body
)
# server ----
server = shinyServer(function(input, output) {
})
# Run the application
shinyApp(ui = ui, server = server)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.