在乾淨的MVC中,我將從數據庫中收集數據並將其傳遞給要呈現的視圖。MVC - 視圖中的數據源容器
即使視圖邏輯選擇不呈現某些元素。這提出了以下問題:
乾淨準備一個包含所有數據庫查詢的容器,但只從視圖中獲取數據,如果視圖開始迭代此容器(它是可迭代的),而不是獲取數據「在控制器」?
附錄
我穿越到視圖的容器是「種」的典範,讓我們把它ExpensiveObjectProvider
。當這個容器傳遞給視圖時,數據尚未從數據庫中獲取。
容器封裝的對象可能很昂貴。我在控制器中看到的唯一原因是錯誤處理(如果數據庫查詢出錯,連接問題等)。你認爲從控制器的數據庫中預取第一個1-2-3對象,然後將容器傳遞給視圖(如果沒有異常發生)並讓視圖使用預取的數據並在迭代容器時獲取新項目?
是的,我傳遞給視圖的容器是一種模型。當這個容器傳遞給視圖時,數據尚未從數據庫中獲取。 – Flavius
好吧,我現在明白了。如果數據庫代碼被封裝在模型中,那麼在視圖需要時它是乾淨的。 –
由容器封裝的對象可能很昂貴。我在控制器中看到的唯一原因是錯誤處理(如果數據庫查詢出錯,連接問題等)。你認爲從控制器的數據庫中預取第一個1-2-3對象,然後將容器傳遞給視圖(如果沒有異常發生)並讓視圖使用預取的數據並在迭代容器時獲取新項目? – Flavius