Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的模板引擎是如何工作的?_Javascript - Fatal编程技术网

JavaScript中的模板引擎是如何工作的?

JavaScript中的模板引擎是如何工作的?,javascript,Javascript,你能给我解释一下,JavaScript中的模板引擎是如何工作的吗?多谢各位 JSON { "color" : "red"} 模板 <strong><%=color%></strong> 结果 <strong>Red</strong> 红色 它们可能因实现的不同而有所不同,但您所说的实现似乎是通过执行以下操作来实现的: 分析页面,在标记中查找键 将键与JSON中的键/值对匹配 用值替换标记/键 首先,我建议您看看String.p

你能给我解释一下,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!"
    
    函数替换令牌(str,替换){
    返回str.replace(/]+)\%>/g,函数(str,match){
    返回替换[匹配];
    });
    }
    变量输入=“”;
    替换标记(输入,{“颜色”:“红色”});
    //返回红色
    替换令牌(“,{”var1:“你好”,“var2:“世界!”);
    //返回“你好,世界!”
    
    看看这些文章:

    • (类似JSP的语法)

    它与其他模板解决方案(在概念层面)没有太大区别

    指定值为红色的
    属性

    <strong><%=color%></strong>
    

    你的问题不是很清楚。你能提供更多的上下文吗?我认为制作模板引擎的方法通常是选择合适的算法,并使用最佳实践技术实现它们,以达到预期的结果。John Resing是最好的变体
    <strong><%=color%></strong>
    
    <strong>Red</strong>