虽然 pickerInput 是一种解决方案,但对于那些想要坚持使用 selectize 的人,请考虑以下几点:
-
请在以下 GitHub 链接下载脚本(我将我的保存为 preserve_search.js):https://github.com/selectize/selectize.js/issues/878#issuecomment-380382697
-
如果您打算使用 Selectize 的客户端版本,请编辑以下脚本以满足您的需求:
addPreserveSearch <- function(x) {
preserve_search <- htmlDependency("preserve_search", "1.0","location_of_your_script_folder",
script = "preserve_search.js")
attachDependencies(x, c(htmlDependencies(x), list(preserve_search)))
}
library(shiny)
ui = fluidPage(
addPreserveSearch(selectizeInput(
inputId = "test",
label = NULL,
choices = mtcars,
options = list(plugins = list('preserve_search')),
multiple = TRUE))
)
server <- function(input, output, session){}
shinyApp(ui, server)
- 如果您计划在基于服务器端的选择中使用 preserve_search,请考虑以下替代方案:
addPreserveSearch <- function(x) {
preserve_search <- htmlDependency("preserve_search", "1.0","location_of_your_script_folder",
script = "preserve_search.js")
attachDependencies(x, c(htmlDependencies(x), list(preserve_search)))
}
library(shiny)
ui = fluidPage(
addPreserveSearch(selectizeInput(
inputId = "test",
label = NULL,
choices = NULL,
multiple = TRUE))
)
server <- function(input, output, session){
updateSelectizeInput(
session, inputId = "test",
label = NULL,
choices = iris$Species,
options = list(plugins = list('preserve_search')),
server = TRUE)
}
shinyApp(ui, server)