请你解释一下,JavaScript中的模板引擎如何工作?谢谢。JavaScript中的模板引擎如何工作?
JSON
{ "color" : "red"}
模板
<strong><%=color%></strong>
结果
<strong>Red</strong>
请你解释一下,JavaScript中的模板引擎如何工作?谢谢。JavaScript中的模板引擎如何工作?
JSON
{ "color" : "red"}
模板
<strong><%=color%></strong>
结果
<strong>Red</strong>
它们可以通过执行有所不同,但一个你在谈论看起来像它的工作原理通过执行以下操作:
解析寻找关键的页面中<%= %>
标签
匹配的JSON的关键键/值对
用值替换标签/键。
作为一个起点,我会建议你给看看到String.prototype.replace
方法和专门使用它的回调函数:
function replaceTokens(str, replacement) {
return str.replace(/<\%=([^%>]+)\%>/g, function (str, match) {
return replacement[match];
});
}
var input = "<strong><%=color%></strong>";
replaceTokens(input, { "color" : "Red"});
// returns <strong>Red</strong>
replaceTokens("<%=var1%> <%=var2%>", { "var1" : "Hello", "var2": "world!"});
// returns "Hello world!"
给看看这些文章:
John Resing是最好的变种 – zloctb 2015-11-28 03:44:00
这不是从其他模板解决方案非常不同的(在概念层面)。
{ "color" : "red"}
指定color
属性与价值red
。
<strong><%=color%></strong>
意思是“只要我有<%=color%>
使用的color
价值。基于绿洲省你拥有的模板引擎可能走DOM,并发现有匹配<%=somestring%>
该值的节点,然后,它会检查是否还有就是somestring
值相匹配的属性,如果有一个,它在JSON(在这种情况下是red
)中定义的值替换的<%=somestring%>
值
这次终于给你:。
<strong>Red</strong>
你的问题不是很清楚。你能提供更多的上下文吗? – 2010-04-19 18:17:25
我认为一般来说,制作模板引擎的方法是选择合适的算法,并使用最佳实践技术来实现它们以实现期望的结果。 – Pointy 2010-04-19 18:19:27