我最近在阅读某些代码。在他的代码中,我看到一个奇怪的html文本,如{VARIABLE}
。那个语法是什么意思?以及如何创建它?感谢
答案 0 :(得分:1)
在PHP中,有一些名为"Complex (curly) syntax"的东西(在页面中更深入地查找),您可以使用{}
将变量的值注入字符串,而不是剪切和连接字符串。
可以找到类似的答案here
另一种情况是,HTML可以包含该文本用作模板时like this one in CodeIgniter。
答案 1 :(得分:0)
您没有初始化它。这是他们模板引擎的一部分。
无论他们如何做到这一点,我们的想法是使用您想要的实际数据查找/替换“{VAR}”。
var songTemplate = "<li class=\"track\"><span class=\"num\">{{TRACKNUM}}.</span>" +
"<span class=\"title\">{{TITLE}}</span>" +
"<span class=\"duration\">{{DURATION}}</span></li>";
var songs = [ { tracknum : 1, title : "Speak to Me/Breathe", duration : "4:13" },
{ tracknum : 2, title : "On the Run", duration : "3:36" },
{ tracknum : 3, title : "Time", duration : "7:01" } ];
function makeTrack (song, template) {
var track = "";
track = template.replace("{{TRACKNUM}}", song.tracknum);
track = template.replace("{{TITLE}}"), song.title);
track = template.replace("{{DURATION}}", song.duration);
return track;
}
function trackList (songs, template) {
var list = "<ul class=\"tracklist\">";
songs.forEach(function (song) {
list += makeTrack(song, template);
});
list += "</ul>";
return list;
}
var songlist = trackList(songs, songTemplate);
parentEl.innerHTML = songlist;
无论使用何种语言对其进行模板化,基本思想都是从一串HTML开始,提取您想要替换的内容,并输入您想要的数据。
我已经向你展示了一个丑陋,丑陋的模板(如果我只需要写一个变量名称数组就会更好,剩下的就是......或者如果它通过字符串查看的话......找到{{X}}
,然后通过一个对象查找正确的值来替换它找到的内容。
这也有安全漏洞,如果你不控制模板和数据(如果你允许在你网站的任何地方进行最终用户输入,那么你就没有控制权。)
但这应该足以说明模板如何做他们做的事情,以及为什么。