2011-12-08 45 views
1

我有一個navigation.cfm網頁,我包括我的所有網頁的使用MG3自定義事件類型:如何在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> 

通過設置這樣的值,就可以給它之後到來的所有視圖。儘管這有效,但語義錯誤,因爲它看起來像currentPage變量被home.cfm模板使用,而不是navigation.cfm。這樣做的正確方法是什麼?

回答

0

我不確定最佳做法是什麼,但您可以考慮在視圖狀態下從主視圖中設置一個值,該主視圖可以拾取after視圖。

例如,在視圖頁/ home.cfm使用<cfset viewState.setValue("currentPage","home") />

,然後在視圖模板/ navigation.cfm使用<cfset viewState.getValue("currentPage","") />

再次找回它。

我沒有after事件類型的情況下試過,但我使用這個設置pagetitle變量,模板用來設置HTML title屬性。

相關問題