2017-03-01 107 views
0

我一直在嘗試出帆,到目前爲止我已經能夠顯示數據庫表模型中所有項目的索引。但是,我有兩個不同的模型,modelA和modelB,我想將它們顯示在視圖根目錄/ dashboard中的稱爲儀表板的單個視圖中。Sails.js多個控制器/模型到一個視圖

但是,我很難試圖瞭解如何讓不同的控制器在儀表板上顯示列表。我如何完成這項工作,是否可以通過兩個不同的控制器完成,如果可以的話如何完成。或者我可以創建一個名爲儀表板的單獨控制器,調用模型的不同實例嗎?

有一個很難包裝我的頭解決此...

+0

您將擁有帶儀表板功能(或w/e)的控制器,並且該控制器將呈現視圖並將其傳遞給您需要的數據。或者,您使用某個控制器渲染視圖,並在視圖內使用請求獲取數據(您將從控制器操作中獲取數據而不是視圖) – yBrodsky

+0

有沒有一種方法可以讓我的控制器指向我的觀點在不同的目錄? res.vew指向/ views/mycontroller/dashboard,而我的儀表板位於/ views/dashboard的根目錄。 – mattbz

+1

是的,res.view將param視爲路徑。你可以放任何你想要的。另外,你可以在routes.js中配置一個路由並在那裏指定視圖。 http://sailsjs.com/documentation/reference/response-res/res-view – yBrodsky

回答

0

如果我理解正確的,你想有一個控制器,取2個不同的數據模型和數據發送到一個視圖。

因爲節點現在支持它,所以我會使用async/await作爲示例,但它與回調相同,但您必須嵌套您的調用或使用caolan異步。

const DashBoardController = { 
    async show(req, res){ 
    const instanceA = await ModelA.findOne(1) // I used a hardcoded number for simplicity 
    const instanceB = await ModelB.findOne(1) 
    res.view('mycrontroller/dashboard', {instanceA, instanceB}) 
    } 
} 

export DashBoardController; 

然後在你看來,你只是你定義的鍵的名稱來訪問它... instanceAinstanceB

如果這不是你的意思,然後讓我知道。

相關問題