MustacheJS不能渲染

时间:2015-07-30 09:14:48

标签: javascript jquery mustache

我试图将一个partial用于具有可枚举属性的简单对象,但是部分不会呈现。

以下是我sample的链接。

对象

obj6    = {
           people : [
              { firstName : 'Jayson', lastName : 'Buquia', isMale : true },
              { firstName : 'Jane', lastName : 'Doe', isMale : false },
              { firstName : 'John', lastName : 'Smith', isMale : true }
            ]
          };

部分

 partials = { person : '<li>{{ firstName }} {{ lastName }}{{^isMale}}, a female {{/isMale}}.</li>' }

模板

<ul>
  {{ #people }} 
    {{>person}}
  {{ /people }}
</ul>

1 个答案:

答案 0 :(得分:1)

尝试将tpl = $('.template .main').html()更改为tpl = $('.template .main').text(),因为html()将返回<h3>Names:</h3><ul>{{ #people }} {{&gt;person}}{{ /people }}</ul>这是无效的模板。

var $p     = $('#container'),
tpl     = $('.template .main').text(),           
partials = { person : '<li>{{ firstName }} {{ lastName }}{{^isMale}}, a female {{/isMale}}.</li>' },
        obj6    = {
            people : [
                { firstName : 'Jayson', lastName : 'Buquia', isMale : true },
                { firstName : 'Jane', lastName : 'Doe', isMale : false },
                { firstName : 'John', lastName : 'Smith', isMale : true }
            ]
        };

 $p.append(Mustache.render(tpl,obj6,partials));

Demo

或者将你的div转换为script标签,因为这里的模板是demo: -

Demo