renderUI 中闪亮的语义 Ui 元素

Shiny semantic Ui elements in renderUI

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

,

如果直接在 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({});"))
    )
  })