PHP と JavaScript の両方で単一の smarty テンプレートを使用しようとしています。これはうまく機能しますが、JavaScript 側が要素 ID を想定し、PHP 側がファイル パスを想定している場合に、テンプレートで {include file=""} タグを使用する方法を理解しようとしています。
エレメント ID は、PHP 側で使用するパスと一致する必要がありますか?
OK、これを行う方法を考え出しました。ID でテンプレートを要求する jsmart の js プロトタイプ メソッドを上書きしました。
jSmart.prototype.getTemplate = function () {}; // Add your method here
そうすれば、渡されたパスとは異なる ID を持つテンプレート要素に ID をマッピングするなど、ID をどうするかを制御できます。
この質問は古いように見えますが、Google経由でこの質問に出くわしたので、あなたの質問に答えたいと思います.
xyz.tpl - 含まれるテンプレート。
Hello {$name}
pqr.tpl - 親テンプレート。
There you see the message
{include file='./xyz.tpl'}
Web ページの Javascript セクションで、次のように定義します。
jSmart.prototype.getTemplate = function (name) {
// Load template content here of template 'name' via ajax or DOM. Say here in the e.g. it would be './xyz.tpl'.
};
親テンプレートを呼び出すだけです
<script>
var tplData = <content of pqr.tpl>; // You can load data in this via ajax or from DOM.
var tplObj = new jSmart(tplData);
var output = tplObj.fetch({'name': 'World'});
alert(output);
</script>
ソース: - https://github.com/umakantp/jsmart/wiki/Include-Templates