2016-11-18 43 views
1

你好,我有一個閃亮的應用程序,應該從數據庫中讀取配置列表,並提示用戶配置列表。閃亮的應用程序如何更新uiOutput塊的一部分,而不是整個塊

該列表取決於一些GET參數,根據它們列表可以不同。

我嘗試兩種方法:

  1. 在ui.RI只放一個大uiOutput元素和裏面的實現(在server.R)我會做一個lapply和foreach配置我將輸出fluidRow與它的一些元素。

    ui.R: 
    uiOutput("serversList") 
    
    server.R: 
    output$serversList <- renderUI({ 
        lapply(get.servers()$server, function(servName) {... 
    
  2. 在ui.R我把一個lapply是基於來自數據庫的名單上,併爲每個配置我將輸出新的輸出對象fluidRow。在server.RI把基於該來自數據庫的同一列表上的另一個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可以修復?

回答

0

我找到了解決方案。 我可以修復解決方案1和 renderUI for serversList 我可以定義其他的renderUI,返回一個帶有與UIUI連接的uiOutput的fluidRow。

長的故事作了簡短:巢解決方案2中的解決方案1.

+0

也看在http://stackoverflow.com/questions/31813601/using-renderdatatable-within-renderui-in-shiny –

相關問題