2016-07-26 59 views
0

我是新手柄,並且被困在通過手柄腳本呈現模板中。以下是代碼。輸出不包含傳遞給模板的對象屬性。請幫忙!手把模板無法讀取通過的數據

<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.4/handlebars.js"> </script> 
    <script> 
    var context = { "name" : "XYZ", "occupation" : "developer" }; 

    var templateScript = $('#handlebars-demo').html(); 
    var theTemplate = Handlebars.compile(templateScript); 
    var html = theTemplate({name: "XYZ",occupation: "developer"}); 
    console.log(html); 
    $(document.body).append(html); 
</script> 
<script id="handlebars-demo" type="text/x-handlebars-template"> 
<div> 
    My name is {{name}}. I am a {{occupation}}. // This just just renders My name is . I am a . 
</div> 

+1

按預期工作http://codepen.io/anon/pen/Wxyxdz – eltonkamami

+0

它門檻不工作在我的應用程序有..它必須在我的節點應用程序中使用把手的方式做任何事情? – Vatsan28

+0

同樣在這裏。 https://jsfiddle.net/3hjLztom/瀏覽器控制檯中的任何錯誤? – ronnyfm

回答

1

嘗試{{context.name}}{{context.occupation}}

+0

它仍然不起作用。有什麼我需要與我的節點應用程序的配置?它是一個節點應用。對不起,我應該首先提到。 – Vatsan28

1

我有同樣的問題,用與車把節點JS時。

問題是,當你創建一個車把模板,它將預編譯腳本使用它的上下文(來自服務器的響應)的服務器端的編譯器。 所以templateScript變量,不會在上下文有名字和職業,會是這個樣子:

<div> 
    My name is . I am a . 
</div> 

有一對夫婦的解決方案來避免這種情況:

  • 添加\{{逃脫表達
<script id="handlebars-demo" type="text/x-handlebars-template"> 
    <div> 
     My name is \{{name}}. I am a \{{occupation}}. 
    </div> 
</script> 
  • 預編譯單獨的客戶端腳本。

欲瞭解更多信息,簽出下面的鏈接: Node.js with Handlebars.js on server and client