2014-10-29 5 views
0

Так что у меня есть представление, которое будет отображать шаблон, который будет содержать изображение. Это изображение зависит от передаваемой переменной, расположенной в активах/изображениях.Макинтош, нужно отображать изображение в шаблоне в зависимости от параметров

В принципе, как я могу передать эту модель в шаблон, чтобы он мог отображать правильное изображение?

Обычно в Rails я бы просто сделать в Rails ERB Шаблон:

<img class="item-portrait" 
src="<%= image_path("items/" + item.name.gsub(" ", "-").downcase + ".png") 
%>"> 

Как я могу добиться того же эффекта в JST шаблоне?

ответ

0

Давайте предположим, что ваша модель выглядит следующим образом:

var itemPortraitModel = new Backbone.Model({ 
    'path' : 'path_to_file' 
}); 

и ваш взгляд похож на это:

var ItemPortraitView = Backbone.View.extend({ 
    template: JST['itemPortraitTemplate'], 
    render: function() { 
    this.$el.html(this.template(this.model.attributes)); 
    return this; 
    } 
}); 

затем в вашем itemPortraitTemplate коде шаблона, любое из свойств в модели будет Доступно:

<img class="item-portrait" 
src="<% print(("items/" + path + ".png") %>"> 
+0

Не думаю, что это сработает. print, похоже, не делает то же самое, что и image_path. Он пытается отправить меня на маршрут localhost. –

+0

print просто выводит аргументы на экран, он не манипулирует им, как image_path (с которым я не знаком). Вы можете либо убедиться, что путь уже правильный в модели, либо передать вспомогательную функцию в шаблон, который правильно его манипулирует. Это может помочь, если вы покажете пример того, как выглядит ваша модель, и каковы будут правильные пути к файлам. – ne8il