Изменение фонового изображения (или любых двух свойств css) в rhandsontable - PullRequest
0 голосов
/ 04 октября 2018

Существует множество примеров, иллюстрирующих использование пользовательского рендеринга с rhandsontables, но, к сожалению, все они используют свойства css с одним словом, например color или background.

Как насчет двухсоставных css-свойств , таких как background-color, background-image, font-size и т. Д.?Замена дефиса (-) точкой (.) Не работает.

И использование дефисов нарушает код и выдает эту ошибку:

ReferenceError: неверное назначение слеваside

В этом примере кода я хочу назначить линейный градиент как background-image и изменить цвет на красный, если значение равно «F».Красный цвет появляется, но градиент не появляется.

Как это исправить?

library(rhandsontable)
library(shiny)

DF = data.frame(val = 1:10, bool = TRUE, big = LETTERS[1:10], stringsAsFactors = FALSE)

ui <- fluidPage(
  rHandsontableOutput("tbk")
)

server <- function(input, output) {
  output$tbk <- renderRHandsontable({
    rhandsontable(DF, width = 550, height = 300) %>%
      hot_cols(renderer = "
               function (instance, td, row, col, prop, value, cellProperties) {
               Handsontable.renderers.TextRenderer.apply(this, arguments);

               if (value == 'F') {
                 td.style.background-image = 'linear-gradient(to right, transparent, green)';
                 td.style.color = 'red';

               } else if(value == 'J') {
                 td.style.background = 'lightgreen';

               } else if(value == 'A' | value == 'x') {
                td.style.background = 'lightblue'}
               }")
  })
}

shinyApp(ui, server)

1 Ответ

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

Если бы я попробовал еще несколько минут, мне не пришлось бы задавать вопрос.Но в любом случае, это может быть полезно для других людей, которые борются с этим, поскольку я не нашел слишком много ссылок на это.

Решение состоит в том, чтобы удалить дефис и точку и сделать сначала прописные буквы .

То есть background-image становится backgroundImage, или font-size становится fontSize!

library(rhandsontable)
library(shiny)

DF = data.frame(val = 1:10, bool = TRUE, big = LETTERS[1:10], stringsAsFactors = FALSE)

ui <- fluidPage(
  rHandsontableOutput("tbk")
)

server <- function(input, output) {
  output$tbk <- renderRHandsontable({
    rhandsontable(DF, width = 550, height = 300) %>%
      hot_cols(renderer = "
               function (instance, td, row, col, prop, value, cellProperties) {
                 Handsontable.renderers.TextRenderer.apply(this, arguments);
                 if (value == 'F') {
                   td.style.backgroundImage = 'linear-gradient(to right, transparent, green)';
                   td.style.fontSize = '25px';
                   td.style.color = 'red';

                 } else if(value == 'J') {
                   td.style.background = 'lightgreen';

                 } else if(value == 'A' | value == 'x') {
                  td.style.background = 'lightblue'}
               }")
  })
}
shinyApp(ui, server)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...