2017-07-12 98 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代码'$形状();'是没有用的,你可以将其删除。 –