选择 - 闪亮,多种选择的动作

时间:2016-07-23 20:37:32

标签: r shiny selectize.js

仍在学习如何使用Shiny / R,如果答案很明显,对不起 试图根据选择的选择在地图上投射各种图层(多个) 所以我得到了:

selectizeInput('bays', 'Select rough bay outlines',  
 choices = list("Residents" = "residents", `Pay to park` = "ptp", 
 "Shared use" = "shared"), multiple = TRUE)

每个等效文件都是geojson文件,应该用于地图(此处为#34;居民",但当然它会使用选择性输入中的选定选项填充):

topoData <- readLines("residents.geojson", warn = FALSE) 
%>% paste(collapse = "\n")

leafletProxy("mymap") %>%
addPolylines(topodata)

我如何构建observeEvent(input$bays,...)所以每个选择都会触发上面的操作(当然使用正确的geojson文件)?我可以做一个选择但多选择可能需要另一种方式。使用submit按钮或对行动作出反应会更有效吗?请注意,它可以在选择列表中添加或删除值吗?最后,选择中有一个很酷的小工具 - 插件&#34; remove_button&#34; - 使用一个小标记添加条目以删除项目 - 我已经看到它用于javascript而不是闪亮 - 是否有可能以某种方式?

$('#input-tags3').selectize({
    plugins: ['remove_button'],
    delimiter: ',',
    persist: false,
    create: function(input) {
        return {
            value: input,
            text: input
        }
    }
});

1 个答案:

答案 0 :(得分:0)

您不需要observeEvent而是reactive。这样的事情应该有效:

# server
topoData <- reactive(
paste(
lapply(
paste0(input$bays,".geojson"), function(geojson) {
readLines(geojson)
}
),collapse="\n")
)



leafletProxy %>% addPolyLines(topoData())

input$bays是所选geojson文件的向量,并且它是被动的,因此人们在响应语句(和观察语句)内更改服务器内的值更新的选择输入。

topoData是一个被动的,它返回被选中的geojson文件。如果我理解正确,你只需将每个文件上的不同文件粘贴到一个字符中即可。 leafletProxy可能必须进入observe,我不确定。