我最近在阅读某人的代码。在他的代码中,我看到一个奇怪的 html 文本写成{VARIABLE}
. 那个语法是什么意思?以及如何创建它?谢谢
问问题
175 次
2 回答
1
在 PHP 中,有一种叫做“复杂(卷曲)语法”{}
的东西(在页面的更深处查找),您可以在其中使用而不是切割和连接字符串将变量的值注入字符串。
可以在这里找到类似的答案
另一种情况是,当 HTML 用作模板时,HTML 可能包含该文本,例如 CodeIgniter 中的这个。
于 2012-09-12T04:05:27.040 回答
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}}
和然后通过一个对象寻找正确的值来替换它找到的值)。这也存在安全漏洞,如果您不能同时控制模板和数据(如果您允许最终用户在站点的任何位置输入,那么您就无法控制)。
但这应该足以说明模板是如何做的,以及为什么。
于 2012-09-12T04:18:20.937 回答