handlebars.js
  • mustache
  • icanhaz.js
  • 2012-03-16 12 views 0 likes 
    0

    ネストされたmustache.jsテンプレートでJavascriptを次のようにレンダリングすることはできますか?ネストされたひげそりテンプレートのJavascriptコードmustache.js handlebars.js ICanHaz.js

    myApp.mustache:

    {{#myapp}} 
    {{>userApp}} 
    {{/myapp}} 
    

    userApp.mustache:

    {{#user}} 
    <script> 
        $(function() { 
        $("a[id='a_popover_{{username}}']").popover() 
        }) 
    </script> 
    {{/user}} 
    

    テンプレートはpystache(Pythonの髭ライブラリ)を正しくレンダリングが、mustache.js、handlebars.js、ICanHaz.js 、ICanHandlebarz.jsのすべてが#userが正しく閉じられなかったような文句を言っています。

    答えて

    0

    確かに</script>ビットが問題であることを確かめてください。ブラウザはそれを見て、それをテンプレートスクリプトの終わりとして解析します。 <\/script>

    0

    また、JavaScriptコードがレンダリングされても本体に追加された後に実行されないため、新しいスクリプト要素を作成することになりました。弦のようなもの。私の場合のための

    $('script:last').html('alert("ok !")'); // won't work 
    

    サンプルコード:

    var render = Mustache.to_html(template, data_sources); 
    var sc = document.createElement('script'); 
    sc.innerHTML = render; 
    var p_div = document.getElementById('template_wrap_div').parentNode; 
    p_div.innerHTML = ""; 
    p_div.appendChild(sc); 
    

    希望いくつかのアイデアやヘルプを提供します。

    関連する問題