selectize - 光泽,多选择
问题描述:
仍然在学习如何使用闪亮/ R行动,对不起,如果答案是显而易见的 试图基于selectize选择(多)投在地图上各层 ,所以我就:selectize - 光泽,多选择
selectizeInput('bays', 'Select rough bay outlines',
choices = list("Residents" = "residents", `Pay to park` = "ptp",
"Shared use" = "shared"), multiple = TRUE)
每相当于是应该用于地图geojson
文件(这里的“居民”,但当然从selectize输入所选的选项填充):
topoData <- readLines("residents.geojson", warn = FALSE)
%>% paste(collapse = "\n")
leafletProxy("mymap") %>%
addPolylines(topodata)
我怎样才能构建observeEvent(input$bays,...)
所以每一个选择触发上面的动作(当然有正确的geojson文件)?我可以做一个单一的选择,但多种选择可能需要另一种方式。使用submit
按钮或对操作做出反应会更有效吗?请注意,它可以添加或删除选择列表中的值?最后,在selectize中有一个很酷的小工具 - 插件“remove_button” - 用一个小标记添加条目以删除该项目 - 我已经看到它的JavaScript但不闪亮 - 可能以某种方式?
$('#input-tags3').selectize({
plugins: ['remove_button'],
delimiter: ',',
persist: false,
create: function(input) {
return {
value: input,
text: input
}
}
});
答
你不想要一个observeEvent
但reactive
。像这样的东西应该工作:
# server
topoData <- reactive(
paste(
lapply(
paste0(input$bays,".geojson"), function(geojson) {
readLines(geojson)
}
),collapse="\n")
)
leafletProxy %>% addPolyLines(topoData())
input$bays
是选择以GeoJSON文件的载体,并从而改变人们的selectize输入的值更新服务器反应报表的内部(而且可以看到报表),它是反应性的。
topoData
是被动的,返回被选中的geojson文件。如果我理解正确,你只需将不同的文件粘贴到一个字符上。 leafletProxy
可能要进入observe
,我不确定。
非常感谢,今晚会检查一下,你碰巧有什么想法如何应用不同的颜色?一个开关里面的反应?或外面的开关?或者别的什么? – Slav