2017-07-12 131 views
2

這個問題基於我以前關於在閃亮的應用中添加UI語義元素。這裏的聯繫,近期的問題:renderUI中的閃亮語義UI元素

Rating Stars in R shiny appHow to flip up shapes in shiny by clicking a button?

我能夠顯示等級星和形狀,如果他們在UI.R.直接構造但是,我需要在渲染UI中使用它們,因爲我有一個登錄頁面並使用觀察用戶界面。

下面的示例代碼:

Ui.R:

shinyUI(semanticPage(
    shinyjs::useShinyjs() 
    ,uiOutput("test"))) 

Server.R:

library(shiny) 
library(shinyjs) 
library(shiny.semantic) 
library(highlighter) 
jsCode <- " 
$('.shape').shape(); 
$('.ui.rating') .rating({}); 
" 


shinyServer(function(input, output) { 
    runjs(jsCode) 
    output$test <- renderUI({ 
     tagList(
     div(class="ui shape", 
      div(class="sides", 
       div(class="ui header side active","This side starts visible."), 
       div(class="ui header side","This is yet another side"), 
       div(class="ui header side","This is the last side"), 
       div(class="ui header side",div(class="ui star rating")) 
     ) 
    ), 
     tags$button(id="test", class="ui button", "Flip", onclick="$('.shape').shape('flip up');") 
    ) 
    }) 

}) 

問題是,評級明星沒有在應用程序中顯示,如果我把它們在渲染UI內。我怎樣才能解決這個問題?

回答

1

你可以這樣做:

output$test <- renderUI({ 
    tagList(
     div(class="ui shape", 
      div(class="sides", 
       div(class="ui header side active","This side starts visible."), 
       div(class="ui header side","This is yet another side"), 
       div(class="ui header side","This is the last side"), 
       div(class="ui header side",div(class="ui star rating")) 
     ) 
    ), 
     tags$button(id="test", class="ui button", "Flip", onclick="$('.shape').shape('flip up');"), 
     tags$script(HTML("$('.ui.rating').rating({});")) 
    ) 
    }) 
+0

PS:( '形狀')。注意,JS代碼'$形狀();'是沒有用的,你可以將其刪除。 –