2015-12-04 4 views
0

У меня есть петля foreach в Razor, которая берет изображения из Multiple Media Picker в Umbraco. Response.Write просто позволяет мне видеть, что изображения отображаются отлично (что они есть), чтобы вы могли игнорировать этот бит.Umbraco Razor - Pass Array to Javascript

Вопрос в том, как заполнить тег изображения URL-адресом изображения, используя функцию Javascript? (см. ниже, который в настоящее время не работает).

Razor Посмотреть/CSHTML

var imagesList = portfolioItem.GetPropertyValue<string>("Images").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); 
var imagesCollection = Umbraco.TypedMedia(imagesList); 

foreach (var imageItem in imagesCollection) 
{ 
    Response.Write("<img src='"+ @imageItem.Url +"' />"); 
} 

Javascript

openInfoWindow = function (name, imagesCollection, location, mw, url, marker) { 
    var infoText = "<img src='" + imagesCollection + "' alt='" + imagesCollection + "'title='" + imagesCollection + "' />"; 
} 

ответ

0

попробуйте использовать JQuery, если и использовать бритву, чтобы установить URL в качестве невидимого входного значения. Затем используйте jquery, чтобы вытащить это значение и добавить его в сам тег img, используя следующее: var inputVal = $ ("input"). Val(); $ ("# my_image"). Attr ("src", inputVal);

Если вы поместите введенное значение invisble в качестве переменной, вы можете установить img atr ursing jquery, как показано выше.

+0

Отличная идея, но это только первое изображение в массиве изображений. – Madness

+0

попробуйте создать цикл for и установите его на цикл длиной массива, затем используйте i, чтобы получить этот номерный элемент в цикле for, а затем заполнить изображение src, используя это – TheOriginal

+0

. Я не слишком увлечен этим методом, поскольку там для загрузки изображений, загруженных в HTML-элементы. Хотя они скрыты, все равно потребуется время, чтобы загрузить их, и это находится на карте Google, поэтому для загрузки может потребоваться некоторое время. – Madness