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();
Вот решение, которое я сделал на основе предыдущих замечательных ответов:
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
Для тех из вас, у кого есть несколько изображений на навигационной панели, 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
Это основано на ответе @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
)
),