2009-12-08 73 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