Backbone.js按参数加载模板

时间:2014-03-03 09:40:10

标签: javascript backbone.js

我想加载一个View并传递一个名为:layout_version

的参数

我正在使用JST作为我的模板引擎。

Views.BottomBarView = Backbone.View.extend({
    el: ".l-bottom-bar",
    template: JST['templates/bottom_bar'],
    render: function(options) { 
        this.model.set("layoutVersion", options.layoutVersion);
        this.$el.html( this.template(this.model.toJSON()) );
        return this;
    }
});

.jst文件如下:

    {{ if (layoutVersion == 1) { }}

        <div class="bottom-bar-s-version">Other</div>

   {{ } else if { layoutVersion == 2 }}

        <div class="bottom-bar-s-version">Show more</div>

   {{ } }}

由于我在创建它时没有将任何模型传递给视图,因此只有一个对象{layoutVersion:2}我得到this.model未定义

我正在使用bottom_bar文件在一个文件中保存两个不同的HTML,并根据模型中的参数进行渲染。

我如何实现目标?

2 个答案:

答案 0 :(得分:0)

只需将此this.model.toJSON()替换为:

{ "layoutVersion": options.layoutVersion }

答案 1 :(得分:0)

您无需传递模型,只需将对象传递给模板即可。

Views.BottomBarView = Backbone.View.extend({
  el: ".l-bottom-bar",
  template: JST['templates/bottom_bar'],
  render: function(options) { 
    this.$el.html(this.template( { "layoutVersion": options.layoutVersion }));
    return this;
  }
});