簡體   English   中英

嵌套路由中的Ember控制器

[英]Ember controllers in nested routes

我對炭燼控制器的工作方式非常困惑。

我現在從ember和ember-cli開始,我想進一步了解控制器的工作方式。

如果我在事件資源中有一個稱為new的嵌套路由,則應該具有:

models/event
routes/events/new
templates/events/new

控制器呢? 我只使用一個簡單的控制器,還是應該使用控制器/事件/新控制器?

沒有任何生成器命令可以為我創建所有資源嗎? 我需要一個一個打電話嗎?

謝謝。

控制器呢? 我只使用一個簡單的控制器,還是應該使用控制器/事件/新控制器?

這主要取決於您的控制器需要做什么。 如果無論如何它只是控制器要做的基本工作,Ember都會為您在后台創建該控制器,並自動將動作氣泡到其父控制器。

沒有比Ember指南更適合閱讀以下內容的內容:

最簡單的定義是:

控制器允許您使用顯示邏輯裝飾模型。

這意味着您基本上將它們用作路線和模板之間的主要通信層。 本質上,您的模型來自於您的路線,通過控制器並進入模板。 模板中發生的操作將到達控制器,然后到達路由。 因此,控制器實際上是您使用模型(和其他數據)來控制向用戶顯示的內容, 控制用戶可以執行的操作, 控制他們可以在何處導航等的中間層。


但是 ,請注意未來的計划:

控制器非常類似於組件,以至於在將來的Ember版本中,控制器將完全由組件替換。 目前,無法將組件路由到,但是,當此更改發生時,建議使用組件替換所有控制器。

這意味着,目前,控制器責任僅限於兩件事:

  1. 根據當前路由維護應用程序狀態
  2. 從組件移動到路線時,處理或冒泡通過控制器層的用戶操作。

首先在控制器上查找在模板上觸發的所有操作,如果未在控制器中對其進行處理或冒泡(通過返回true),則在路由上對其進行查找。

因此,僅當您想立即(在較小范圍內)處理在這些路由上發生的事情,而不是讓所有事件冒泡到ApplicationController時,才根本不需要用於/eventsevents/new路由的控制器。


沒有任何生成器命令可以為我創建所有資源嗎? 我需要一個一個打電話嗎?

是。 因為,如果您沒有專門創建一個控制器,Ember只會在幕后為您生成一個。 您需要指定自己要處理的位置。

您應該訪問我在上面給出的鏈接(或再次在這里 )到Ember指南,其中包含更多詳細示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM