2011-12-08 11 views
1

は私がMG3カスタムイベントの種類使用することによって、私のすべてのページに含めていnavigation.cfmページがあります。ColdFusion Model Glue 3でグローバルナビゲーションcfmの現在のページを設定するにはどうすればよいですか?

<event-type name="pageWithNav"> 
    <after> 
     <views> 
      <include name="navigation" template="templates/navigation.cfm"/> 
      <include name="maintemplate" template="templates/main.cfm"/> 
     </views> 
    </after> 
</event-type> 

をそして私はそうのようなイベントハンドラで、それを使用しています:

<event-handler name="page.home" type="pageWithNav"> 
    <views> 
     <include name="body" template="pages/home.cfm"/> 
    </views> 
</event-handler> 

私の質問は、navigation.cfmページは、現在のページが何であるかを知っているように、私は、変数を設定するのですか、ですか?これまでのところ、私がやったpage.homeイベントハンドラに次の

<include name="body" template="pages/home.cfm"> 
    <value name="currentPage" value="home"/> 
</include> 

をこのような値を設定することにより、それが後に来るすべてのビューに利用可能になります。これは機能しますが、navigation.cfmの代わりにhome.cfmテンプレートで変数currentPageが使用されているように見えるため、セマンティクスが間違っています。これを行う正しい方法は何でしょうか?

答えて

0

ベストプラクティスが何であるか分かりませんが、afterビューを取得できるプライマリビュー内からビューステートの値を設定することを検討できます。ビューページ/ home.cfm再びそれを取得するために<cfset viewState.getValue("currentPage","") />

を使用navigation.cfm /ビューテンプレートでは、その後<cfset viewState.setValue("currentPage","home") />

を使用し、中

など。

私はafterイベントタイプのコンテキストでこれを試していないが、私は、テンプレートはHTML title属性を設定するために使用するpagetitle変数を設定するためにこれを使用します。

関連する問題