Добавление изображения в правый конец панели навигации в макете navbarPage () в R Shiny [дубликат]

Вот некоторые подходы к работе с асинхронными запросами:
  1. Объект обезьяны браузера
  2. Q - A
  3. A + Promises.js
  4. jQuery отложен
  5. API XMLHttpRequest
  6. Использование концепции обратного вызова - как реализация в первом ответе

Пример: jQuery отложенная реализация для работы с несколькими запросами

var App = App || {};

App = {
    getDataFromServer: function(){

      var self = this,
                 deferred = $.Deferred(),
                 requests = [];

      requests.push($.getJSON('request/ajax/url/1'));
      requests.push($.getJSON('request/ajax/url/2'));

      $.when.apply(jQuery, requests).done(function(xhrResponse) {
        return deferred.resolve(xhrResponse.result);
      });
      return deferred;
    },

    init: function(){

        this.getDataFromServer().done(_.bind(function(resp1, resp2) {

           // Do the operations which you wanted to do when you
           // get a response from Ajax, for example, log response.
        }, this));
    }
};
App.init();
18
задан John Paul 11 July 2014 в 20:48
поделиться

4 ответа

21
ответ дан John Paul 23 August 2018 в 21:57
поделиться

Вот решение, которое я сделал на основе предыдущих замечательных ответов:

 ui <- 
   fluidPage(  
       list(
         tags$head(
           HTML('<link rel="icon" href="favicon.png" 
                type="image/png" />'))),

    navbarPage("App user name", windowTitle = "App name",
    ...

Место для сохранения изображений - это папка «www» на сервере приложений Shiny:

shinyApp/app.R
shinyApp/www/favicon.png
0
ответ дан andrii 23 August 2018 в 21:57
поделиться

Для тех из вас, у кого есть несколько изображений на навигационной панели, title= будет работать только для одного из изображений, если вам не нравится ужасающее форматирование.

Этот код ниже позволяет пользователю добавлять заголовок с новым изображением, которое также является гиперссылкой. Я использовал это, чтобы создать логотип GitHub и связать свой репозиторий.

# Create Right Side Logo/Image with Link       
   tags$script(HTML("var header = $('.navbar > .container-fluid');
   header.append('<div style=\"float:right\"><a                                    #THESE THREE
   href=\"URL\"><img src=\"Logo.png\" alt=\"alt\" style=\"float:right; width:33px; #IN 
   height:41px;padding-top:10px;\"> </a></div>');                                 #SAME LINE

    console.log(header)")
    ),

header.append через </a></div>'); НУЖДАЮТСЯ В ОДНОМ РУКЕ КОДА В R

Все, что мы делаем, это пометить этот раздел кода как HTML-скрипт, поэтому все передается как символьная строка в R и считывается как HTML-код. К счастью, мы можем изменить размер изображения и переместить его, используя padding-left,right,top,bottom: _px.

Обратите внимание, что container-fluid - мой навигационный бар, но для вашего приложения это может быть другим . Дополнительные опции форматирования могут быть включены в часть стиля кода.

Обратите внимание, что вы также можете добавить текст и связать его таким же образом.

# Create Right Side Text
 tags$script(HTML("var header = $('.navbar > .container-fluid');
 header.append('<div style=\"float:right\"><h3>Follow us on 
 GitHub</h3></div>'); 
 console.log(header)"
 )),

Снова убедитесь, что header.append - </div>'); находятся в одной строке кода в R

2
ответ дан Chabo 23 August 2018 в 21:57
поделиться

Это основано на ответе @Gohn Paul's , но мне кажется более простым. Сначала поместите название своей страницы в переменную, так как мы будем использовать ее дважды - в качестве названия окна и на нашей странице:

PAGE_TITLE <- "My great title"

Ниже в вашей жидкостной странице:

  titlePanel(windowTitle = PAGE_TITLE,
             title =
               div(
                 img(
                   src = "my_logo.png",
                   height = 100,
                   width = 100,
                   style = "margin:10px 10px"
                 ),
                 PAGE_TITLE
               )
             ),
4
ответ дан Community 23 August 2018 в 21:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: