r - 闪亮:使用 js 将新项目添加到 selectizInput
r - shiny : add new item to selectizInput using js
我正在尝试通过位于传单中的简单按钮向 selectizInput 添加新选项
我得到的是一个未定义的选项
这是一个例子:
library(shiny)
library(leaflet)
shinyApp(
ui <- fluidPage(
selectizeInput("countries", "Country :", choices = c("Worldwide") ),
leafletOutput("countryMap",height="500px")
),
server <- function(input, output, session){
output$countryMap <- renderLeaflet({
leaflet() %>%
addEasyButton(easyButton(icon = "fa-check", id = "doneMap", position = "topright", title = "Finish",
onClick = JS("function(btn, map){
var $select = $('#countries').selectize();
var selectize = $select[0].selectize;
selectize.addOption({ value: 'selectedRegion', text: 'Selected Region' });
selectize.addItem('selectedRegion');
}
"))) %>%
addProviderTiles(providers$Esri.WorldStreetMap)
})
})
data
在addOption(data)
中唯一的问题是一个需要value
和label
键的对象,而不是value
和 text
:
...,
onClick = JS("function(btn, map){
var $select = $('#countries').selectize();
var selectize = $select[0].selectize;
selectize.addOption({value: 'selectedRegion', label: 'Selected Region'});
selectize.addItem('selectedRegion');
}")
我正在尝试通过位于传单中的简单按钮向 selectizInput 添加新选项
我得到的是一个未定义的选项
这是一个例子:
library(shiny)
library(leaflet)
shinyApp(
ui <- fluidPage(
selectizeInput("countries", "Country :", choices = c("Worldwide") ),
leafletOutput("countryMap",height="500px")
),
server <- function(input, output, session){
output$countryMap <- renderLeaflet({
leaflet() %>%
addEasyButton(easyButton(icon = "fa-check", id = "doneMap", position = "topright", title = "Finish",
onClick = JS("function(btn, map){
var $select = $('#countries').selectize();
var selectize = $select[0].selectize;
selectize.addOption({ value: 'selectedRegion', text: 'Selected Region' });
selectize.addItem('selectedRegion');
}
"))) %>%
addProviderTiles(providers$Esri.WorldStreetMap)
})
})
data
在addOption(data)
中唯一的问题是一个需要value
和label
键的对象,而不是value
和 text
:
...,
onClick = JS("function(btn, map){
var $select = $('#countries').selectize();
var selectize = $select[0].selectize;
selectize.addOption({value: 'selectedRegion', label: 'Selected Region'});
selectize.addItem('selectedRegion');
}")