2011-07-30 47 views
7

我對使用骨架與玉/下劃線的模板有點困惑。Backbone.js玉和循環模型

我有一個骨架模型,其中有一些數組,並且不知道如何呈現數組屬性。我可以將它們移動到單獨的骨幹收集&視圖中,但在這種情況下看起來像是過度殺傷。

我也跟着this blog post on using backbone with jade並添加以下到我的骨幹文件

_.templateSettings = { 
     interpolate : /\{\{(.+?)\}\}/g 
    }; 

允許我呈現在這個莊園的模型屬性:

 //in my JavaScript 
     this.template = _.template($("#some-template").html()); 

     //in my .jade template 
     input.text(type='text', name="name", value='{{name}}') 

我想工作是如何對模型中的一個數組做一個簡單的循環。例如

- for (var child in children) 
     {{child}} 

但我很困惑正確的語法,其中玉開始和下劃線接管等謝謝。

回答

5

你不能在瀏覽器中使用jade(嗯,你可能在技術上可以,但它不是通用的骨幹而不是下劃線)。您將在那裏使用下劃線模板。 The docs on _.template表明您可以評估JavaScript並使用_.each方法遍歷模型的數組屬性。

它最終會在您的視圖的render函數中看起來像這樣。您需要將模板函數緩存爲視圖的一個屬性以提高效率,但爲了簡單起見,我在此將其內聯。例如,假設您有一個Car模型,其中列表drivers作爲驅動程序名稱的數組。

var template = "<% _.each(model.drivers, function(name) { %> <li><%= name %></li> <% }); %>"; 
return _.template(template, this); 

請注意,您需要在您的模板設置提供evaluate語法這個例子既包括插值風格(<%=)和模板標記的評估風格(<%)。目前你只有鬍鬚風格插值,這是不夠的。