2013-03-11 61 views
0

如果我從鬍鬚腳本和一些偏色呈現HTML,我可以根據所呈現的數據選擇要使用的偏色嗎?用小鬍子選擇偏色

如:

data = {"posts": [ 
    {"type":"text", "body":"I'm text"}, 
    {"type":"image", "uri":"http://placekitten.com/200/300"} 
]} 

隨着像一個基本模板:

<ul class="posts"> 
    <li> 
    {{#posts}} 
    {{> {{type}}}} 
    {{/posts}} 
    </li> 
</ul> 

然後text.mustache

<p>{{body}}</p> 

而且image.mustache

<img src="{{uri}}" /> 

而且,因爲這會令:

<ul class="posts"> 
    <li> 
    <p>I'm text</p> 
    </li> 
    <li> 
    <img src="http://placekitten.com/200/300" /> 
    </li> 
</ul> 

我在這裏失去了一些東西?我應該嘗試這個嗎?

回答

1

你在這裏問的是在線的「邏輯」方面,因此,小鬍子試圖避免的東西。這並不是說沒有辦法做到這一點,它可能不是你想的方式:)

在小鬍子中,許多更高級用法的正確答案是「準備你的視圖」。這也不例外。我prolly做這樣的:

function addHelpers(posts) { 
    for (var i = 0, l = posts.length; i < l; i++) { 
     posts[i].isText = posts[i].type === 'text'; 
     posts[i].isImage = posts[i].type === 'image'; 
     posts[i].isVideo = posts[i].type === 'video'; 
    } 
    return posts; 
} 

data = {"posts": [ 
    {"type":"text", "body":"I'm text"}, 
    {"type":"image", "uri":"http://placekitten.com/200/300"} 
]} 

data.posts = addHelpers(data.posts); 

那麼你的基本模板將是這個樣子:

<ul class="posts"> 
    {{# posts }} 
    <li> 
     {{# isText }}{{> text }}{{/ isText }} 
     {{# isImage }}{{> image }}{{/ isImage }} 
     {{# isVideo }}{{> video }}{{/ isVideo }} 
    </li> 
    {{/ posts }} 
</ul> 
+0

簡單直觀和 - 謝謝:) – 2013-03-13 07:31:09

+0

沒問題,很高興幫助! – bobthecow 2013-03-13 15:48:41