2016-04-13 18 views
0

我試圖確定在閃亮的儀表板中使用的gvistable中的選定行。我遵循了演示(EventListener)規定的步驟,但出於某種原因,我無法識別選定的行。R Shiny:gvistable無法調用選定的行

這裏是一個簡化和修改的代碼,試圖保持清晰的問題。

library(shiny) 
library(googleVis) 
ui <- dashboardBody(box(title = "data table",width = 4, htmlOutput("dt")), 
     verbatimTextOutput("row")) 

server <- shinyServer(function(input,output,session){ 
    datatable <- data.frame("symbol" = c("alpha", "beta", "gamma")) 

    output$dt <- renderGvis({ 
    d <- gvisTable(datatable, chartid = "mytable", options = list(gvis.listener.jscode= " 
     var sel = chart.getSelected(); 
     var row = sel[0].row; 
     var text = data.getValue(row,1); 
     Shiny.onInputChange('text'); 
     ")) 
    }) 
    output$row <- renderPrint({ 
    input$text 
    }) 
}) 
shinyApp(ui, server) 

我總是得到NULL輸出verbatimtextoutput。任何人都可以指出我在這裏犯的錯誤嗎?! 我嘗試了大量的搜索,但無法找到解決方案。

+0

你可以添加鏈接到你使用的演示? –

+0

當然..它是'demo(EventListener)' –

回答

0

我應該也許根本沒有問過這個問題,因爲解決方案非常簡單。但是,也許這對其他用戶很有用,當你有其他使用gvistable中的對象的圖或函數作爲輸入時,它是一個很酷的選項。 這裏是修復

d <- gvisTable(datatable, chartid = "mytable", options = list(gvis.listener.jscode = 
"var text = data.getValue(chart.getSelection()[0].row,0); 
Shiny.onInputChange('text', text.toString());") 

這使得差別,Shiny.onInputChange有兩個參數,我已經錯過了第二個。

希望這可以幫助其他人嘗試類似的東西。順便說一句,另一個可能的解決方法是使用shinyjs。反正我也會嘗試。