rCharts и рикша: слайдер исчезает с графика рикши, когда на мою веб-страницу добавляется таблица данных

Я построил веб-страницу, используя удивительные rCharts и knitr. Моя страница объединяет графики временных рядов рикши с ползунками и таблицей данных. Когда я добавляю данные, все ползунки исчезают из моих диаграмм рикши. Я попытался изменить config.yml, чтобы не дублировать вызов на те же ресурсы, но это не помогло решить проблему. Любые идеи будут большой помощью. Ниже приведен воспроизводимый файл r-markdown, который можно связать на html-странице с помощью knitr.

```{r echo = F, message = T, cache = F}
require(rCharts)
opts_knit$set(self.contained=T)
knitr::opts_chunk$set(results = 'asis', tidy = F, message = T, echo=F, fig.width=700)
```

### Chart
```{r chart}
# add dummy date column to iris to make a time series chart
x <- cbind(iris, date=seq.Date(as.Date("2010-01-01"), length.out=nrow(iris), by=1))
x$date <- as.double(as.POSIXct(x$date,origin="1970-01-01"))
r2 <- Rickshaw$new()
r2$layer(
  Sepal.Length ~ date,
  data = x,
  type = "line",
  min = "auto"
)
r2$set(
  slider = TRUE,
  title = "IRIS",
  width = 700
)
r2$print('chart', include_assets=T, cdn=T)
```

### Table
```{r table}
r2 <- dTable(iris)
r2$print('table', include_assets=T, cdn=T)
```

1 ответ

Проблема возникает из-за jQuery включается дважды. Быстрое решение проблемы - добавить хук к документу. knitr это удалит строку, которая дублирует jQuery, Обязательно установите cache = F для этого чанка, чтобы он запускался каждый раз, когда вы вызываете knitr, В будущей версии я добавлю jQuery аргумент print так что вы можете отключить его, если вы уже загрузили jQuery на твоей странице.

```{r cache = F}
library(knitr)
knit_hooks$set(document = function(doc){
  pat = "<script type='text/javascript' src=http://code.jquery.com/jquery-1.10.2.min.js></script>"
  gsub(pat, "", doc)
})
```
Другие вопросы по тегам