1

Shiny 有带有{{ }}嵌入 r 代码语法的 html 模板:

<ul>
    <li>{{ SHINY_VARIABLE }}</li>
    <li>{{ SHINY_VARIABLE2 }}</li>
</ul>

然而,其他 web 框架可以结合 html 循环服务器变量。文档中的基本示例Django

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>

这在 .html 文件中使用标记非常易读。 shiny可以这样做:

library(shiny)

athlete_list <- c('Lebron', 'Serena', 'Michael')

li_vec <- paste0('<li>', athlete_list, '</li>')
li_text <- paste(li_vec, collapse = '')
ul_text <- paste0('<ul>', li_text, '</ul>')

HTML(ul_text)

哎呀......当您嵌套其他元素时,它变得更加丑陋。谁有更好的方法?

4

1 回答 1

0

这更接近了,仍然不是很好......

# Function to process looped over html + variable
rHtml <- function(html) {
  html <- paste(html, collapse = '')
  HTML(html)
}

# Server variable
athlete_list <- c('Lebron', 'Serena', 'Michael')

在您的 html 模板中:

<ul>
  {{
  rHtml(sapply(athlete_list, function(x) {paste(
    '<li>', x, '</li>\n'
  )}))
  }}
</ul>
于 2018-06-16T19:12:24.553 回答