2015-02-23 72 views

回答

0

无论何时我们定义一个新的路由或控制器,我们基本上都会创建该路由或控制器的新实例。我们使用create方法来做到这一点,以便我们可以根据需要覆盖任何方法钩子。所以简而言之,每条路线和控制器都有不同的实例(不是一个实例)。对于Ember应用程序,我们使用create方法,因为我们只能有一个应用程序实例,但我们可以有多个路由,控制器和视图,所以我们使用extend方法。

1

这只是一个猜测,但我会想象因为这种方式更通用。是的,控制器和路线和单身人士现在,但他们可能并不总是。如果Ember明天决定控制器不再需要单身人士,那么您不必改变已经声明控制器的方式。 (我认为有可能在容器中有这样一种方式,所以你的控制器和路由是而不是单身人士,我不会推荐它)

还有其他一些小的好处。您可以扩展类而不是对象,因此将它们声明为类可以重用代码。另外,您无法在创建时声明计算属性,因此无论如何您必须执行Ember.Controller.extend().create()

相关问题