路由和控制器都是单例类,为什么不直接执行Ember.Route.create()或Ember.Controller.create()?为什么路线和控制器是类而不是对象?
0
A
回答
0
无论何时我们定义一个新的路由或控制器,我们基本上都会创建该路由或控制器的新实例。我们使用create方法来做到这一点,以便我们可以根据需要覆盖任何方法钩子。所以简而言之,每条路线和控制器都有不同的实例(不是一个实例)。对于Ember应用程序,我们使用create方法,因为我们只能有一个应用程序实例,但我们可以有多个路由,控制器和视图,所以我们使用extend方法。
1
这只是一个猜测,但我会想象因为这种方式更通用。是的,控制器和路线和单身人士现在,但他们可能并不总是。如果Ember明天决定控制器不再需要单身人士,那么您不必改变已经声明控制器的方式。 (我认为有可能在容器中有这样一种方式,所以你的控制器和路由是而不是单身人士,我不会推荐它)
还有其他一些小的好处。您可以扩展类而不是对象,因此将它们声明为类可以重用代码。另外,您无法在创建时声明计算属性,因此无论如何您必须执行Ember.Controller.extend().create()
。
相关问题
- 1. 什么是控制对象
- 2. 为什么类对象的属性保留而不是复制?
- 3. 为什么UnhandledExceptionEventArgs.ExceptionObject对象而不是Exception?
- 4. 为什么注入控制器而不是操作
- 5. 在Laravel中使用路线而不是控制器搜索
- 6. 为什么java方法与对象而不是类相关?
- 7. 控制台返回[对象对象]而不是对象成员
- 8. 为什么HttpContext是一个抽象类而不是接口?
- 9. 为什么java.sql.Statement是一个接口而不是抽象类?
- 10. 什么是对游戏控制器
- 11. 为什么控制台打印对象的数组,但不是一个对象
- 12. 在快速路线中,为什么`。/ routes`而不是`/ routes`?
- 13. CakePHP的:重用模型,控制器,配置而不是观点和路线
- 14. 使用控制器作为语法而不是$ scope的优点是什么?
- 15. 为什么我们需要抽象类而不是虚拟类?
- 16. 对象作为参数,为什么不能我们声明的类,而不是
- 17. 什么是Laravel中的路由和控制器?
- 18. 什么时候Zend_Controller_Request_Http不是控制器
- 19. Zend_Auth:为什么验证对象名为adapter而不是策略?
- 20. 绘制点划线(....)线索路径,而不是一个线路(________)
- 21. CakePHP的 - HTML的“链接 - 为什么使用控制器=>和行动=>而不只是控制器/操作
- 22. 为什么Svg路径出现在控制台中而不是屏幕上?
- 23. 找出对象是类对象而不是类的实例
- 24. laravel路线和控制器不工作
- 25. 在Rails 5的控制器中使用什么而不是after_commit?
- 26. PID回路控制什么是dt? term
- 27. glGetMatrix()是什么对象(为什么不是glSetMatrix()呢?)?
- 28. 为什么DataTemplate会返回类名而不是控件?
- 29. 为什么这条铁路路线不会去我的控制器?
- 30. 为什么不能从控制器访问Firebase对象的$ value?