2016-04-05 21 views
2

Ich fange an, glänzende Module für meine UI und Server zu verwenden. Ich habe ein spezifisches Problem mit der Anzeige der Dygraph-Legende.r dygraph und glänzende Module

Vor der Verwendung von glänzenden Modulen konnte ich einfach die Grafik und die Legende in meiner Benutzeroberfläche anzeigen. Es hat aufgehört zu arbeiten, sobald ich die Module benutzt habe. Könnte es sein, dass die Legende von dygraph keine reaktive Ausgabe ist?

Keine glänzenden moudles (Werke)

...

tabPanel("Plot",dygraphOutput("plot1"), 

    textOutput("legendDivID")) 
... 

Der dygraph Servercode:

output$plot1 <- renderDygraph({ 

    dygraph(dfplot())%>% 
    dyLegend(labelsDiv = "legendDivID", labelsSeparateLines = T)%>% 
    dyRangeSelector() 
    }) 

Jetzt baue ich meine glänzenden Module

StockUI<-function(id, label= "aaa"){ 
    ns <- NS(id)#Named space 
... 
tabPanel("Plot",dygraphOutput(ns("plot1")), 
          textOutput(ns("legendDivID"))} 

Stock <- function(input,output,session){ 
... 
output$plot1 <- renderDygraph({dygraph(foo())%>% 
     dyLegend(labelsDiv = "legendDivID", labelsSeparateLines = T)%>% 
     dyRangeSelector() 
    }) 
} 

Aber die Legende wird nicht mehr angezeigt, es funktioniert gut außerhalb der glänzenden Module.

Antwort

0

Ihre legendDivId in der Benutzeroberfläche ist in ns verpackt, so sollte es innerhalb ns im Server auch gewickelt werden. ns im Server kann durch server$ns bewertet werden. Dies sollte funktionieren:

output$plot1 <- renderDygraph({dygraph(foo())%>% 
     dyLegend(labelsDiv = session$ns("legendDivID"), labelsSeparateLines = T)%>% 
     dyRangeSelector() 
    }) 
Verwandte Themen