关于哪个HTML模板库适合JQuery的任何建议?谷歌搜索出现了很多库,但是我不确定是否有一个公认的库能够经受时间的考验。
关于哪个HTML模板库适合JQuery的任何建议?谷歌搜索出现了很多库,但是我不确定是否有一个公认的库能够经受时间的考验。
Answers:
好吧,坦率地说,客户端模板现在很热,但是相当丛林。
我相信最受欢迎的是:
还有很多其他项目,但是您必须对其进行测试,以了解最适合您的项目以及您的项目风格。
就我个人而言,我很难添加新的语法和逻辑集(混合逻辑和模板,hello ??),并使用纯js。我的模板中的每个模板都存储在它自己的html文件(./usersTable.row.html)中。我仅在修改内容时使用模板,并且我只有几个“逻辑” js文件,一个用于表,一个用于div,一个用于列表。甚至没有一个选择的选项(在这里我使用另一种方法)。
每次我尝试做一些更复杂的事情时,我都发现代码不够清晰,比起“旧的”方式花了更多的时间来稳定。在我看来,模板中的逻辑完全是胡说八道,添加它自己的语法只会添加很难跟踪的错误。
有关于这个话题的讨论合理的文件在这里,它涵盖了一系列模板化的工具。不过,并非特定于jQuery。
由Microsoft创建并接受为正式jQuery插件的jQuery模板插件。
但是请注意,它现在已被弃用。
几年前,我建立了IBDOM:http://ibdom.sf.net/ | 从2009年12月开始,如果直接从主干中获取,它将支持jQuery绑定。
$("#foo").injectWith(collectionOfJavaScriptObjects);
要么
$("#foo").injectWith(simpleJavaScriptObject);
另外,您现在可以将所有“ data:propName”标记放在class =“ data:propName other classnames”属性中,因此您不必使用这些标记来填充应用程序的内容。
我还没有在那里更新一堆文档以反映我最近的增强,但是自2007年以来,我已经在生产中使用了该框架的各种版本。
对此问题的怀疑者:
当微软利用IE5发明了我们现在称为XmlHttpRequest和“ ajax”模式时,其背后的部分承诺是在Web浏览器和服务器之间纯粹地交换数据。该数据将被封装在XML中,因为在1999/2000年,XML变得非常炙手可热。除了通过回叫机制通过网络检索xml文档之外,MS的MSXML ActiveX组件还支持我们现在称为XSL-T和XPath的预草稿实现。
结合了HTTP / XML,XPath和XSL-T的检索功能,为开发人员提供了巨大的创造力,使其可以构建充当“应用程序”的丰富“文档”,从而纯粹从服务器发送数据,更重要的是从服务器检索数据。
为什么这是有用的模式?这取决于您的用户界面有多复杂,以及您是否在乎其可维护性。
当使用高级CSS构建视觉上非常丰富的语义标记接口时,您要做的最后一件事是将标记块分块到“迷你控制器/视图”中,这样您就可以将.innerHTML文档片段插入主体文档,这就是原因。
保持高级html / css用户界面可管理的一个主要原则是,至少在开发的活跃阶段中保留其验证。如果您的标记有效,则可以专注于CSS错误。现在,如果标记片段的片段最终在用户交互的各个阶段注入,那么管理起来将变得非常笨拙,并且整个过程变得很脆弱。
想法是将所有标记UI构造都放在一个文档中,仅通过网络检索数据,并使用可靠的框架,该框架至少会简单地将您的数据注入标记构造中,并且最多复制标记构造您将其标记为可重复。
IE5 +中的XSL-T和XPath可以实现,但实际上没有其他浏览器。一些F / OSS浏览器框架已经涉足XPath,但我们现在还不能完全依靠它。
那么,实现这种模式的下一个最佳方法是什么?IBDOM。从服务器获取数据,将其注入文档中。毫不费力地。
您应该看一下Javascript-Templates,这是一个著名的jQuery File Upload插件中使用的小型模板引擎,由同一作者Sebastian Tschan(@blueimp)开发
https://github.com/blueimp/JavaScript-Templates
遵循塞巴斯蒂安(Sebastian)的使用指南,只需删除此行
document.getElementById("result").innerHTML = tmpl("tmpl-demo", data);
换成这个
$('#result').html(tmpl('tmpl-demo', data));
不要忘记在HTML文件中添加div结果标签
<div id="result"></div>
请享用