2014-03-03 89 views
0

我想加載一個視圖並傳遞一個名爲的參數:layout_versionBackbone.js通過參數加載模板

我使用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,並根據模型中的參數進行渲染。

我該如何實現目標?

回答

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; 
    } 
}); 
0

通過只需更換這this.model.toJSON()

{ "layoutVersion": options.layoutVersion }