Форматирование текста отдельных вариантов в выпадающем меню selectInput - PullRequest
0 голосов
/ 30 октября 2018

Я бы хотел отформатировать текст отдельных вариантов, отображаемый в раскрывающемся меню selectInput (). У меня есть список текстовых строк с атрибутами HTML:

myChoices_list <- c("<b>choice 1</b>", "<b>choice 2</b>", "<i>choice 3 </i>", "<i>choice 4</i>", "<<p style=\"text-indent: 20px\">choice 5</p>")

Атрибуты html вызывают жирный шрифт, курсив и отступы, примененные к каждой строке. Я попытался применить атрибуты с помощью функции HTML () в опции 'choices', но безуспешно.

ui <- fluidPage(
sidebarPanel(
  selectInput(inputID = "myChoice", "Choice:"
             , choices = HTML(myChoices_list))
  )
) 

Хотя эти форматы работают правильно в главной панели, установив для параметра «escape» значение «FALSE» в выходных данных сегмента сервера, эта опция не доступна для выпадающего меню в selectInput ().

Я думаю, что решение может быть связано с тегами $ style, но я новичок в структуре блеска и обозначения текстовых форматов. Это также отличается от Как оформить отдельное отдельное меню selectInput в R Shiny? тем, что html-форматы уже являются частью списка. Фактический список также большой.

1 Ответ

0 голосов
/ 31 октября 2018

Почему бы не использовать для этого jQuery?

$('#DropdownSelectID').change(function () {
  var selectedVal = $('#DropdownSelectID :selected').val();

  if (selectedVal == '1') {
     $("#DropdownSelectID").css('cssText', 'font-weight: bold; color: blue');
  }
  else if (selectedVal == '2') {
     $("#DropdownSelectID").css('cssText', 'color: red');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

<select id='DropdownSelectID'>
  <option value='0'>-- Select --</option>
  <option value='1'>Hi</option>
  <option value='2'>Hello</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...