2009-12-08 75 views
4

有人使用过javascript模板系统吗?我曾经使用嵌入JavascriptMVC的,但我现在做服务器端开发,所以我想要一个更简化/更薄的版本..Javascript模板系统 - PURE,EJS,jquery插件?

我已经找到2. 1是EJS这是包含在JavascriptMVC

http://embeddedjs.com/

,另一个是纯铁,你可以使用jQuery使用

http://beebole.com/pure/index.html

有没有人有任何的经验,或者是有我找不到的其他东西?也许一个jquery类型的插件或东西..

基本上我需要在runtine的JavaScript内部替换HTML文件的部分,而无需调用服务器。

但我的HTML替换代码需要保存在一个外部文件,而不是嵌入JS内

任何帮助非常感激

感谢

+0

马克,如果还活着,我专门构建我们的应用程序与纯净,如果您有任何问题,你可以在论坛发帖:http://groups.google.com/group/Pure-Unobtrusive-Rendering-Engine – Mic 2010-02-08 23:44:29

回答

0

Prototype Template是快速和容易,如果原型是一个选项。如果你真的需要一个jQuery插件,我写了一个port of it(无耻插件)。

0

我已经广泛使用了EJS。从Rails的背景来看,它非常适合我的需求,因为它与ERB非常相似。

我推荐它。它正在积极维护,开发人员的反应非常迅速。另外,在我运行的基准测试中,速度非常快。我将它用于iPhone/Android的移动网站。

对于其他几个人,看看这个博客帖子:http://www.viget.com/extend/benchmarking-javascript-templating-libraries/

0

这里是一个独立的,定制的解决方案,我已经写了是小得令人难以置信,并模仿原型的template system

var templater = function(template, tokens, tokenIdentifier) { 
    tokenIdentifier = tokenIdentifier || "$"; 
    // Decode HTML encoded template tokens %7B -> {, %7D -> } 
    template = template.replace(
     new RegExp("\\" + tokenIdentifier + "%7B(\\w+)%7D", "gi"), 
     tokenIdentifier + "{$1}" 
    ); 

    for (var i in tokens) { 
     if (tokens.hasOwnProperty(i)) { 
      template = template.replace(
       new RegExp("\\"+tokenIdentifier+"\\{"+i+"\\}", "g"), 
       tokens[i] 
      ); 
     } 
    } 

    return template; 
}; 

用法:

templater("Hi, my name is ${name}", {name: "Bobo the Clown"}); 
// The token identifier defaults to $, but can be changed arbitrarily 
templater("#{title} #{surname} #{verb} #{noun}", {title: "Dr.", surname: "Amazing", verb: "packed", noun: "sand"}, "#"); 

输出:

Hi, my name is Bobo the Clown 
Dr. Amazing packed sand 
1

这是一个在jQuery中为Smarty模板语言实现的实现。 http://www.balupton.com/sandbox/jquery-smarty/demo/

一个令人印象深刻的功能是支持动态更新。因此,如果更新模板变量,它将更新模板中使用该变量的任何位置。相当漂亮。

您还可以使用onchange事件挂钩变量更改。所以说,当那是说执行效果或AJAX有用的“page”变量的变化;-)

+0

这实际上只是更新了。很值得一看。 – balupton 2010-07-01 06:17:09

1

如果你有任何机会使用jQuery框架,我可以推荐一个名为jQote的插件给你。有人拿John Resig的引擎将其打包成一个插件,使得它很容易做到JavaScript模板。

http://aefxx.com/jquery-plugins/jqote

干杯!

+0

与此同时,jQote2已经发布:http://aefxx.com/jquery-plugins/jqote2/ – chiborg 2010-07-16 10:08:46

0

Mustache.js至今工作很适合我。它也可用于许多服务器端语言(Ruby,Python,Clojure等),因此您可以在多个上下文中使用它。

2

HAML咖啡。
结合两种最好的元语言。

https://github.com/9elements/haml-coffee

+0

还有一个Ruby宝石,可以让你在资产管道中使用haml-coffee或作为倾斜模板:https://github.com/netzpirat/haml_coffee_assets – Netzpirat 2012-04-12 17:08:24