2013-03-27 164 views
10

可以說我有鬍子按鈕部分這樣是否有可能將變量傳遞給局部鬍鬚

<button name="{{name}}" class="btn">{{title}}</button> 

是否有可能以某種方式直接調用部分這樣

<form> 
.... 
{{> button|name=foo,title=Cancel}} {{> button|name=bar,title=Submit}} 
</form> 
時設置標題

這將使它更容易創建視圖,而不是像這樣,創造每個按鈕的哈希值。

<form> 
.... 
{{#buttons}} 
    {{> button}} 
{{/buttons}} 
</form> 

回答

3

我不知道你能做到這一點,但我的工作圍繞着使用小鬍子功能

的JavaScript

var partial = "<div>{{value}}</div>"; 
var data = {some_data:[1,2,3]}; 
var items = {func:function(){ 
    return function (index){ 
     return mustache.render(partial,{value : data.some_data[index]}); 
    } 
}); 
mustache.render(main,items); 

鬍子

{{#func}}1{{/func}} 
{{#func}}2{{/func}} 
1

這是不可能做到這一點的簡單的鬍鬚,但它可以在帶助手的Handlebars中使用。 Handlebars是Mustache的擴展,因此您可以通過替換解析器庫來切換到它。下面是它看起來可能會把手:

JS助手(也有實現的用於許多其他語言):

Handlebars.registerHelper('button', function(title, options) { 
    var attrs = Em.keys(options.hash).map(function(key) { 
     key + '="' + options.hash[key] + '"'; 
    }).join(" "); 
    return new Handlebars.SafeString(
     "<button " + attrs + ">" + title + "</button>"); 
}); 

使用模板:

{{buttton title name="name" class="class"}} 

更多信息是這裏可用:http://handlebarsjs.com/

相關問題