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({});"))
)
})
这个问题是基于我之前关于在闪亮的应用程序中添加 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({});"))
)
})