URL以外の情報を使ってテンプレートをマッピングするには?
- 詳細
- カテゴリ: テンプレート
- 作成日:2016-03-15
同一URLだがページレイアウトが異なる画面が複数ある場合、それぞれにテンプレートを用意した方が開発しやすいケースがよくあります。
しかし、URLが同一のためURLとテンプレートパスを1対1で紐づけるテンプレートマッピングCSVは使用できません。
こういったケースではcontroller.jsを使用してテンプレートをマッピングします。
controller.jsではURL以外の情報を使ってテンプレートをマッピングすることができます。
例えばHTML自身やクエリパラメータなどが使用できます。
■HTML自身を参照する場合
//GAMEN_IDというname属性を持つ要素のvalue値を取得する
var id = $('input[name=GAMEN_ID]').val();
// GAMEN_IDがID0003の場合、テンプレート「id0003.html」をマッピングする
if (id === "ID0003") {
gcruntime.setTemplate("/id0003.html");
return;
}
■クエリパラメータを使用する場合
//クエリパラメータを取得する
var id = gcutil.getParameter('id');
//クエリパラメータ「id」が0001の場合、テンプレート「0001.html」をマッピングする
if (id === '0001') {
gcruntime.setTemplate("/0001.html");
return;
}