2013-07-19 17 views
1

我正在學習FW/1框架,迄今爲止都非常棒。我主要理解控制器/服務/視圖是如何工作的。然而,我有一些額外的功能,在某些情況下操縱視圖,即根據返回到視圖的內容來更改CSS和佈局。哪裏是最好的地方添加這個功能,使他們可以通過視圖訪問?FW/1放置附加功能的最佳位置?

回答

3

要使用示例,我通常會在我的應用程序中一致地使用「格式化程序」對象 - 格式化日期等。要在FW/1應用程序中完成此操作,我通常會在setUpRequest()中調用一個控制器方法,該方法將格式化程序對象放入請求上下文(rc)中。

例如,我的s​​etupRequest()方法可能看上去像這樣

function setupRequest(rc) { 
    controller('setup.default'); 
} 

而且在setup.default()我會有類似這樣的代碼:

component accessors="true" { 

    property Any formatter; 

    public void function default(Any rc){ 
     rc.formatter = formatter; 
    } 
} 

我用ColdSpring處理我的依賴注入 - 但我確信你可以很容易地使用DI/1,並且根本沒有任何代碼改變。

然後,例如,如果我需要格式化視圖中的約會,我只是用這個:

rc.formatter.formatDate(someObject.getSomeDate()) 

您可以修改本例中使用不同的邏輯來你的CSS等,端起邏輯轉換爲CFC並將其包含在請求上下文(rc)中。

+0

感謝您花時間解釋這一點。這一切都有道理。這適用於可以在整個應用程序中被調用的標準函數,但是如果函數是業務邏輯,例如最好這樣做。說我有一個函數,在視圖上輸出ID,然後做更多的數據庫查詢,然後改變視圖中的輸出? –

+0

理想情況下,您希望執行其他數據庫查詢並在視圖中使用該數據來確定獲取輸出的內容。如果你可以提供更多細節,這可能有助於指導你走向正確的道路。 –