【发布时间】:2018-09-01 21:07:35
【问题描述】:
您知道 selectizeinput 中的项目可以通过按“删除”来删除,但不能通过单击它来删除。这大大降低了我的仪表板的用户体验。这是一个删除输入字段中所有输入的解决方案,但我只想删除被点击的那个。
library(shiny)
library(dplyr)
library(shinyjs)
ui= fluidPage(
useShinyjs(),
sidebarLayout(
sidebarPanel(
selectizeInput(inputId= "cyl", label= "cyl",
choices= NULL,
selected= sort(unique(mtcars$cyl))[1],
multiple=T)
),
mainPanel(
tableOutput("tab")
)
)
)
server= function(input, output,session) {
updateSelectizeInput(session = session,inputId ="cyl",choices=sort(unique(mtcars$cyl)),selected=sort(unique(mtcars$cyl))[1], server = TRUE)
df_filtered= reactive({
mtcars %>%
{if (is.null(input$cyl)) . else filter(., cyl %in% input$cyl)}
})
output$tab= renderTable(df_filtered())
onclick("cyl", {
updateSelectizeInput(session, "cyl", selected = "")
})
}
shinyApp(ui, server)
对此有什么选择吗?我考虑过通过 javascript 触发 keydown 事件,但这还不行:-(。你们能帮帮我吗?
【问题讨论】:
-
frissdemo.shinyapps.io/FrissDashboard 也许这有帮助。怎么可能得到这样的过滤器?
标签: r shiny selectize.js shinyjs