最近誰かのコードを読んでいます。彼のコードには、のように書かれた奇妙なhtmlテキストがあります{VARIABLE}
。その構文はどういう意味ですか?そしてそれを作成する方法は?ありがとう
2 に答える
PHPには、「複雑な(カーリー)構文」(ページのより深い部分を探してください)と呼ばれるものがあり{}
、文字列を切り取って連結する代わりに、変数の値を文字列に挿入します。
同様の答えがここにあります
もう1つのケースは、CodeIgniterのように、HTMLがテンプレートとして使用されている場合にそのテキストを含めることができる場合です。
あなたはそれを初期化しません。それは彼らのテンプレートエンジンの一部です。
彼らがそれをどのように行っているかに関係なく、アイデアは「{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}}
し、次に、オブジェクトを調べて、見つかったものを置き換える適切な値を探しました)。テンプレートとデータの両方を制御しない場合、これにはセキュリティホールもあります(サイトのどこかでエンドユーザー入力を許可すると、制御できなくなります)。
しかし、これは、テンプレートがどのように機能するのか、そしてその理由を示すのに十分なはずです。