我如何正确地预增强与jQuery移动版的八字胡模板
How can I correctly pre-enhance Mustache templates with jQuery Mobile?
我正试图加快我的jQuery移动和基于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>
当我在Backbone-View中定义我的模板函数时,我试图做以下事情:
var preEnhance = $('<div>').hide().html($('#tmpl').html()).appendTo($('body')).trigger('create');
return Mustache.compile(preEnhance.html());
我想对如下数据使用它:
{legend: 'Pre Enhanced Forms, How?', items:[{id:'a',name:'A', checked: true},{id:'b',name:'B'},{id:'c'}]}
然而,jQuery移动做了一些奇怪的{{#checked}}checked{{/checked}}
部分:它变成了{{#checked}}checked{{="" checked}}=""
,我猜是由于/
, jQM将解释为结束标签的开始(纠正我,如果我错了)。这样,我就不能再渲染模板了。
我能做点什么吗?我做错了什么吗?是否有更好的方法来使用预增强模板?我不想在模板中使用增强的硬编码标记。
还有一个(失败的)演示小提琴给感兴趣的人。
试试这个。只需添加checked属性并传递checked值。
<input type="checkbox" id="{{id}}" checked="{{#checked}}{{checked}}{{/checked}}" >
我更新了jsFiddle http://jsfiddle.net/PxfGt/4/
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 触摸移动时切换到新元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 停止jQuery UI滑块移动超过给定值
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- JQuery移动动态分区页面
- XMLHttpRequest在移动设备上的chrome上不起作用
- 如何使bxslider仅在移动视图中处于活动状态
- css停止图像在滚动中移动
- 使用wikipedia api contentmodel返回未知的八字胡括号
- 八字胡js:是否有可能有八字胡渲染HTML是在json对象传入
- 如何在单独的文件中存储我的八字胡/把手模板
- 我如何正确地预增强与jQuery移动版的八字胡模板
- 使用下划线模板的八字胡样式函数求值