Backbone视图,需要根据参数在模板中渲染图像

Backbone view, needs to render an image in the template depending on params

本文关键字:图像 参数 视图 Backbone      更新时间:2023-09-26

所以我有一个视图,它将渲染一个包含图像的模板。此图像取决于传入的变量,该变量位于资产/images中。

基本上,我如何将这个模型传递到模板中,以便它能够渲染正确的图像?

通常在Rails中,我只会在Rails ERB模板中执行:

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

如何在JST模板中实现相同的效果?

让我们假设您的模型如下所示:

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") %>">