-2

我最近在阅读某人的代码。在他的代码中,我看到一个奇怪的 html 文本写成{VARIABLE}. 那个语法是什么意思?以及如何创建它?谢谢

4

2 回答 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 回答