Javascript 如何使用jQuery Mobile正确预增强胡须模板?

Javascript 如何使用jQuery Mobile正确预增强胡须模板?,javascript,html,jquery-mobile,backbone.js,mustache,Javascript,Html,Jquery Mobile,Backbone.js,Mustache,我正在尝试加快基于jQuery Mobile和backbone.js的应用程序的速度,尤其是在增强表单元素(其中有很多)时。我想我可以让jQM“预增强”表单模板,然后用增强的标记编译模板函数,而不必增强每个页面上的所有表单元素。在我实现选中/未选中复选框之前,这一切都很好。模板基本上如下所示: <form> <fieldset data-role="controlgroup"> <legend>{{legend}}</legend

我正在尝试加快基于jQuery Mobile和backbone.js的应用程序的速度,尤其是在增强表单元素(其中有很多)时。我想我可以让jQM“预增强”表单模板,然后用增强的标记编译模板函数,而不必增强每个页面上的所有表单元素。在我实现选中/未选中复选框之前,这一切都很好。模板基本上如下所示:

<form>
    <fieldset data-role="controlgroup">
        <legend>{{legend}}</legend>
        {{#items}}
        <label for="{{id}}">{{#name}}{{name}}{{/name}}{{^name}}No name given{{/name}}</label>
        <input type="checkbox" id="{{id}}" {{#checked}}checked{{/checked}}>
        {{/items}}
    </fieldset>
</form>
然而,jQuery Mobile对
{{{checked}}{/checked}}
部分做了一些奇怪的事情:它变成了
{{{checked}}checked{{{checked}=”“
,我猜这是由于jQM将解释为结束标记的开始的
//code>(如果我错了,请纠正我)。像这样,我不能再渲染模板了

我能做点什么吗?我做错什么了吗?有没有更好的方法来使用预增强的模板?我不想在模板中使用增强的和硬编码的标记


对于那些感兴趣的人来说,还有一个(失败的)机会。

试试这个。只需添加checked属性并传递checked值

<input type="checkbox" id="{{id}}" checked="{{#checked}}{{checked}}{{/checked}}" >


我更新了JSFIDLE

谢谢,这修复了
{{=“
”,但不知何故它会选中所有复选框,即使我显式地将它们设置为
false
。这是因为在HTML中“checked”和“checked=”都意味着应该选中复选框。
{legend: 'Pre Enhanced Forms, How?', items:[{id:'a',name:'A', checked: true},{id:'b',name:'B'},{id:'c'}]}
<input type="checkbox" id="{{id}}" checked="{{#checked}}{{checked}}{{/checked}}" >