URL以外の情報を使ってテンプレートをマッピングするには?

同一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;
}