jQuery模板已经被弃用了一段时间了.
我有一些JavaScript对象形式的数据,我想格式化为HTML并附加到DOM.这些天最好的办法是什么?
$('<li>',{id:'my-'+Id}).append($('<span>').text(myText))吗?我是一个网络人,主要做Perl服务器端的东西,我正在慢慢得出一些结论.
您希望HTML元素看起来像HTML元素,并且在HTML中定义它更容易:
<div class="sidebar_elem">
<a href=""> TEXT</a>
</div>
Run Code Online (Sandbox Code Playgroud)
比在Javascript或jQuery中拼凑相同:
( '<div/>' )
.attr('id' , 'sidebar_elem' + i )
.addclass( 'sidebar_elem' )
;
( '<a/>' )
.attr('href' , link_url )
.appendTo( '#sidebar_elem' + i )
;
Run Code Online (Sandbox Code Playgroud)
这就是说我不再是模板不可知论者,但我不知道相信哪种模板工具.我已经研究了一些基于jQuery的模板插件,但我还没有对它们中的任何一个感到满意,部分是因为我所看到的似乎想要将所有代码放入页面本身,这打破了"只有标记进入HTML文件,只有样式进入CSS文件,只有代码进入JS文件"咒语我一直在背诵.
所以,我正在寻找一个基于Javascript的模板工具,它允许我将模板放在外部文件中,这样我就可以在一系列网页上进行一次模板更改.如果它是基于jQuery的,那很好,我需要学习的东西少,但它不是一个交易破坏者.
我最近开始制作网络应用程序,虽然我做了一些有用的东西,但我不确定最佳做法.
到目前为止,我主要使用Django,web.py和PHP的模板系统.但是现在我正在使用jQuery和不错的ajaxy魔法从服务器获取数据而不刷新客户端,我看到了直接在javascript中构建HTML的优势(所以我可以将一个小的json对象发送到客户端并且让他弄清楚要改变什么以及如何改变).
所以现在我有一些使用模板渲染的位,有些是用javascript构建的,甚至是一个可怕的情况,两者都混合在一起,一个web.py模板生成一个创建HTML表的javascript函数 - 感觉就像C宏再一次!(我最终会重构那个)
这是Web开发中的常见问题吗?任何推荐的最佳实践,例如"在所有内容中使用json,在javascript中尽可能多地渲染","使用库foo"等等?什么处理模板以及使用javascript处理什么的好的启发式方法?
在这里搜索一下,我发现有人询问javascript模板,这似乎是一个可能的解决方案.
目前我有一个单独的html页面,里面有4个模板,还有更多.是否可以将模板放在不同的文件中并"导入"它们?我可以在.js文件中定义它们吗?
我正在使用jQquery模板插件:http://api.jquery.com/category/plugins/templates/
我的代码看起来像示例!
我有一个按钮,使用ajax从服务器获取一些数据,当它完成时,它应该向DOM添加一个元素.
要添加的元素将是这样的
<div class="SomeClass">
<div class="SomeOtherClass">
<span class="Name">name from server</span>
<span class="Manufacturer">manufacturer from server</span>
</div>
<span class="Weight">weight from server</span>
</div>'
Run Code Online (Sandbox Code Playgroud)
在我从服务器获取数据的jQuery函数中,创建此结构的最佳方法是什么,将数据(名称,制造商和权重)从服务器放入正确的位置,并将其放入DOM中.我有这样的工作:
$("#ItemList").append('<div class="SomeClass"><div class="SomeOtherClass"><span class="Name">' + value.name + '</span><span class="Manufacturer">' + value.manufacturer + '</span></div> ' +
'<span class="Weight">' + value.weight + '</span></div>');
Run Code Online (Sandbox Code Playgroud)
但这看起来不太好,而且很难看到合适的结构.
以干净的方式做到这一点的最佳方法是什么?