2015-02-23 75 views

回答

0

無論何時我們定義一個新的路由或控制器,我們基本上都會創建該路由或控制器的新實例。我們使用create方法來做到這一點,以便我們可以根據需要覆蓋任何方法鉤子。所以簡而言之,每條路線和控制器都有不同的實例(不是一個實例)。對於Ember應用程序,我們使用create方法,因爲我們只能有一個應用程序實例,但我們可以有多個路由,控制器和視圖,所以我們使用extend方法。

1

這只是一個猜測,但我會想象因爲這種方式更通用。是的,控制器和路線和單身人士現在,但他們可能並不總是。如果Ember明天決定控制器不再需要單身人士,那麼您不必改變已經聲明控制器的方式。 (我認爲有可能在容器中有這樣一種方式,所以你的控制器和路由是而不是單身人士,我不會推薦它)

還有其他一些小的好處。您可以擴展類而不是對象,因此將它們聲明爲類可以重用代碼。另外,您無法在創建時聲明計算屬性,因此無論如何您必須執行Ember.Controller.extend().create()

相關問題