2016-04-05 2 views
2

Я начинаю использовать блестящие модули для своего интерфейса и сервера. У меня есть особая проблема с отображением легенды диграфа.r dygraph и блестящие модули

Перед использованием блестящих модулей я мог бы просто отобразить график и легенду в своем интерфейсе. Он переставал работать, когда я использовал модули. Может быть, легенда о диграфе не является реактивным выходом?

Нет блестящего moudles (работы)

...

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

    textOutput("legendDivID")) 
... 

Код dygraph сервер:

output$plot1 <- renderDygraph({ 

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

Теперь я строй своих блестящих модулей

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() 
    }) 
} 

Но легенда больше не отображается, она отлично работает за пределами блестящих модулей.

ответ

0

Ваш legendDivId в пользовательском интерфейсе обернут внутри ns, поэтому он также должен быть обернут внутри ns на сервере. ns на сервере можно оценить через server$ns. Это должно работать:

output$plot1 <- renderDygraph({dygraph(foo())%>% 
     dyLegend(labelsDiv = session$ns("legendDivID"), labelsSeparateLines = T)%>% 
     dyRangeSelector() 
    }) 
Смежные вопросы