2011-12-12 124 views
0

您好我正在寻找一个好的JavaScript模板引擎,我可以使用这种语法。Javascript模板 - 使用#{variable}语法

#{interpolation here} 

<li>#{label}</li> 

任何人都可以指向正确的方向吗? 非常感谢

+0

您是否因为过去使用了特定的模板脚本而结束了此语法? –

+0

不知道 - 只能使用服务器端使用的一些片段。我猜模板解决方案服务器端正在使用该语法。 – Chin

回答

3

可以使用Underscore.js模板。 Underscore包含许多其他可能有用的实用功能。

// sets templating to "#{}" pattern 
_.templateSettings = { 
    interpolate : /#\{(.+?)\}/g 
}; 

var template = _.template("Hello #{name}!"); 
template({name : "Chin"}); // "Hello Chin!" 

要玩的代码是here

+0

谢谢,这很好 - 下划线已经在页面上。在我投身之前,强调你可以提到的任何缺点。 – Chin

+2

@Chin唯一的缺点是它返回已编译的HTML,所以你必须使用'innerHTML'。您可能想包装它,以便它返回一个documentfragment。 – Raynos

0

看看到JsRender

下一代jQuery的模板,适用于高性能纯基于字符串的渲染优化,无需DOM或jQuery的依赖,如果

或者你喜欢基于jQuery的东西,你可以使用jquery template

+1

该脚本的文档在哪里?我们是否应该查看每个样本的源代码......? –

+0

谢谢,因为我无法控制的原因 - 它需要是上面的语法。 JsRender看起来不错,但使用 - {{= label}} – Chin

+0

是的源代码是查找[逐步页面]的地方(http://borismoore.github.com/jsviews/demos/step-by-step /index.html) –

2

我建议你结帐下划线的模板函数:http://documentcloud.github.com/underscore/#template

默认情况下它使用其它字符进行插补,但他们是可以定制的,所以你将不得不改变他们

编辑没有问题:似乎NETTUTS刚刚发布关于如何用JavaScript创建模板中的文章(+视频),这是真正的好:http://net.tutsplus.com/tutorials/javascript-ajax/create-a-makeshift-javascript-templating-solution/

+0

谢谢 - 现在就看看它。使用<%= - 出于兴趣与ejs是一样的,我总是碰到?另外,你有没有在客户端使用过玉器?这也令我感兴趣。 – Chin

+0

@Chin您可以自定义设置,请参阅我的答案代码示例 – kubetz

+0

@Chin ejs是另一回事︰https://github.com/visionmedia/ejs – alessioalex

0

结帐速度:

http://tempojs.com/

的符号是这样的:

<ol id="tweets"> 
    <li data-template> 
     <img src="default.png" data-src="{{profile_image_url}}" /> 
     <h3>{{from_user}}</h3> 
     <p>{{text}}<span>, {{created_at|date 'HH:mm on EEEE'}}</span></p> 
    </li> 
    <li data-template-fallback>Sorry, JavaScript required!</li> 
</ol> 
+0

与小胡子有什么不同? :\ – Raynos

+0

对不起,在你提到它之前,我一无所知。我做了一个快速搜索,他们真的非常相似。 –