0

我正在尝试使用 R 中的胶水包解析变量。但看起来有些问题。谁能帮忙

由于我在这里的变量将来会是反应性的,我正在尝试使用胶水解析它.................................. …………………………………………………………………………

library(glue)
asd <- "XYZ"


HTML(glue('<html>
<head>
<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}
</style>
</head>
<body>



<div class="dropdown">
  <span>{asd}</span>
  <div class="dropdown-content">
  <p>Hello World!</p>
  </div>
</div>

</body>
</html>
'))
Error in eval(parse(text = text, keep.source = FALSE), envir) : 
  object 'position' not found

预期产出

<html>
<head>
<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}
</style>
</head>
<body>



<div class="dropdown">
  <span>XYZ</span>
  <div class="dropdown-content">
  <p>Hello World!</p>
  </div>
</div>

</body>
</html>

我正在尝试使用 R 中的胶水包解析变量。但看起来有些问题。谁能帮忙

由于我在这里的变量将来会是反应性的,我正在尝试使用胶水解析它.................................. …………………………………………………………………………

4

1 回答 1

2

sprintf应该在这里工作

str1 <- sprintf('<html>
<head>
<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}
</style>
</head>
<body>



<div class="dropdown">
  <span>%s</span>
  <div class="dropdown-content">
  <p>Hello World!</p>
  </div>
</div>

</body>
</html>
', asd)

OP 代码中的错误来自eval(parse它在.transformer参数中使用的错误。默认情况下,它会进入identity_transformer整个字符串的评估/解析,因此会产生问题。使用sprintf或创建自定义.transformer函数可能会更好

于 2021-10-19T07:10:27.957 回答