2014-10-29 63 views
0

所以我有一个视图将呈现将包含图像的模板。该图片取决于被传入的变量,位于assets/images主干视图,需要根据参数在模板中呈现图像

基本上,我该如何将这个模型传递给模板,以便它可以呈现正确的图像?

通常在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

我不认为这有效。打印似乎并没有像image_path那样执行相同的操作。它试图将我发送到本地主机路由 – 2014-10-30 03:29:46

+0

打印只输出参数到屏幕上,它不像image_path(我不熟悉)操纵它。您可以确保模型中的路径已经正确,或者将辅助函数传递到正确处理它的模板中。如果你展示一个你的模型看起来像什么和正确的文件路径是什么的例子,这可能会有所帮助。 – ne8il 2014-10-30 15:41:00