2017-01-18 83 views
0

我有兩個途徑:燼2 - 加載嵌套路線在父路由

  • /users/:user_id(又名user
  • /users/:user_id/roles(又名user roles

我現在想顯示內user rolesuser路線。 我仍然想要單獨的user roles路線。

user roles正在對user路線中加載的頁面應該顯示爲loading(因爲請求到服務器user_rolesuser roles節/模板應繼續獨立,我並不想從內加載user_roles (ajax)user路由,因爲它會減慢路由加載)。

我該如何做到這一點?

  • 我認爲我可以叫... user-roles-component一個異步組件,和飼料user到它像這樣:{{user-roles-component user=user}}。然後我可以在我的兩條路線上使用這個組件。除了在user roles路線的情況下,我不會加載模型?我不會違反DDAU,因爲我將直接在我的組件中處理user_roles數據。
  • 或者我只是提供一個服務,稱爲user-roles-service,處理異步加載user_roles給定user並且還將它傳遞給兩個路由並使用將在兩個路由中的自定義組件進行呈現。

回答

0

我會在您的路線中創建一個loading state,並在點擊一個按鈕/鏈接後加載角色的內容並將接收到的內容傳遞給您的組件。

另一種方法是在你的組件中創建一個加載狀態(也許我會這麼做)。要做到這一點,你會收到你的ajax請求Promise(有幾種方法可以做到這一點:.find(),.query()ember-ajaxember-network)。一旦您點擊按鈕/鏈接加載內容,就可以激活組件的加載狀態,一旦解決了承諾,您就可以再次更改組件的狀態。

收到數據後您的組件可以顯示其內容並保存AUDD(Actions Up,Data Down)的兩種方式。