Вызов ввода с привязкой с сервера.

Я успешно реализовал возможность привязки Shiny, но функция определена в ui.R, и любые вызовы с server.R этого нового ввода приводят к ошибке функции not found.

Я прохожу session на server.R (не уверен, если это имеет значение), и я также создал global.R, в котором просто есть функция (не уверен, что мне нужно что-то еще, потому что это даже не позволяет мне вызывать функцию в ui.R).

Как я могу вызвать пользовательскую блестящую функцию ввода с server.R (особенно в renderUI)?

Пример кода здесь: (вызов sortList отлично работает с ui.R, но не с server.R) https://gist.github.com/jpd527/9687359

1 ответ

Решение

Вот исправленный Gist: https://gist.github.com/trestletech/9691459

Здесь есть два основных изменения:

  1. Я переместил sortListInput функция к global.R, Вы упоминаете, что пытались это сделать, но это сработало, чтобы раскрыть эту функцию обоим server а также UI,
  2. Следующая проблема заключалась в том, что вы только инициализировали sortListInput при создании страницы. Ты имел $( ".sortableList" ).sortable(); $( ".sortableList" ).disableSelection(); в синглтоне <script> в вашем <head>, но это будет выполняться только один раз при создании страницы. Так динамически создан sortableLists то, что создается позже, никогда не будет инициализировано. Поэтому я добавил <script> кусок к вашему sortListInput это будет запускать этот код каждый раз, когда вы генерируете новый. Я не знаю более чистого способа сделать это прямо сейчас, но, возможно, он существует / будет существовать...

Несколько вещей, о которых нужно знать:

  • Так как вы сейчас инициализируете все sortListInputs каждый раз, когда он создается динамически, вы должны быть уверены, что этот код инициализации идемпотентен, то есть вы не нарушите существующие при запуске этого кода.
  • Я заметил, что вы загружаете свою собственную версию jQuery и некоторые другие библиотеки jQuery. Будьте осторожны с этим, поскольку у Shiny также есть версия jQuery, от которой она зависит. Вы должны быть уверены, что нет никаких конфликтов.
Другие вопросы по тегам