2017-02-15 63 views
2

我試圖創建一個名爲replace的助手。我知道有一個了,但對我的生活中,我似乎無法弄清楚如何替換字符串的只是一個部分,並返回剩下Handlebars JS replacin部分字符串

<div class="entry"> 
    <h1>{{#replace "&" title}}and{{else}}{{/replace}} 
</h1> 
    <div class="body"> 
    {{body}} 
    </div> 
</div> 

{ 
    title: "The Amazing Red & Tshirt", 
    body: "This is a short story about the red tshirt" 
} 

助手

Handlebars.registerHelper('replace', function(find, replace, options) { 
    var string = options.fn(this); 
return string.replace(find, replace); 
}); 

我似乎能夠做的是替換整個字符串,而不是字符串的一小段。在這種情況下用單詞和替換&符號。

我確定它很容易,但我似乎無法做任何事情,而不是用整個單詞替換整個塊。

任何建議,不勝感激

回答

2

什麼var string = options.fn(this); reffering到是什麼助手裏面,像括號的兩種結構之間:

{{#helperName}}this{{/helperName}} 

那麼,什麼是你的助手呼籲在此刻做的是:

  1. 試圖取代find = '&'this = 'and'
  2. 與您的title = 'The Amazing Red & Tshirt'

你應該做的是呼喚你的幫手是這樣的:

{{#replace "&amp;" "and"}}{{title}}{{/replace}} 

不要看到作爲參數,而不是單一的&角色通過了整個實體