renderUI中shiny的语义Ui元素

这个问题是基于我之前关于在shiny的应用程序中添加ui语义元素的。 这里链接,最近的问题:

Rshiny应用中的星级评分 , 如何通过单击按钮将shiny的形状翻转?

如果它们是直接在UI.R中构建的,我可以显示评级星和形状。 但是,我在renderUi中需要它们,因为我有一个登录页面并使用了观察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中,评级星不会显示在应用中。 我怎样才能解决这个问题?

你可以做:

  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({});")) ) })