【发布时间】:2017-04-02 02:21:01
【问题描述】:
您好,我有一个闪亮的应用程序,它应该从数据库中读取配置列表并提示用户配置列表。
列表依赖于一些 GET 参数,根据它们,列表可以不同。
我尝试了两种方法:
-
在 ui.R 中,我只放了一个大的 uiOutput 元素,在它的实现中(在 server.R 中)我将进行 lapply 和 foreach 配置,我将输出一个包含一些元素的流体行。
ui.R: uiOutput("serversList") server.R: output$serversList <- renderUI({ lapply( get.servers()$server, function(servName) {... -
在 ui.R 中,我根据来自数据库的列表放置了一个 lapply,对于每个配置,我将输出一个带有新输出对象的 fluidRow。在 server.R 中,我根据来自数据库的相同列表放置了另一个 lapply,并且对于每个配置,我将定义在 ui.R 中动态定义的每个输出对象的实现
ui.R fluidRow( box(width=12, lapply(get.servers()$server, function(serv) {... list( uiOutput(paste0('conf', serv)),... server.R lapply(get.servers()$server, function(servName) { output[[paste0('conf', servName)]] <- renderUI({...
解决方案 1 有效,但每次我更改某些配置时,整个配置列表都会刷新,并且用户设置的值会丢失。 我需要一种方法来控制什么时候应该更新什么对象。
如果我从数据库(在 server.R 中)获取数据,则解决方案 2 不起作用。
如果我改为从 global.R 中的纯文本文件中获取数据,则解决方案 2 有效,并且我可以控制什么时候应该更新什么对象,因为当其中使用的输入对象发生变化时,每个输出对象都会被刷新。
有没有解决方案3?还是可以固定1/2?
【问题讨论】: