Ember 2.0 控制器还是组件...?

Ember 2.0 Controllers or Just Components...?

我了解到 Ember2 正试图移除控制器。我什至链接到了这个 RFC https://github.com/ef4/rfcs/blob/routeable-components/active/0000-routeable-components.md。但是,我一直跟着教程,他们坚持要做一个Controller。我们还需要制作控制器还是已经过时了?

控制器仍然需要(因此没有被弃用)有两个原因:查询参数,以及因为组件尚不可路由。您可以按照教程使用控制器,而不会在以后给您带来太多麻烦。

但是,如果您想提前学习本教程,则可以改用组件,除非有上述两个警告。没有办法将控制器用于查询参数,但您可以使用这个简单的 hack 来避免缺少可路由组件:

假设您正在创建一个名为 Dashboard 的路线。本教程还将告诉您创建相应的 Controller 和 Template。继续这样做,但删除控制器。创建一个名为 dashboard-main 的组件,将逻辑从 Controller 移至 component.js 文件,将 Template 移至组件的 Template。然后,在 Dashboard Template 中,只需引用组件:

{{dashboard-main items=model foo=foo bar=bar ...}}

根据您在路由中所做的事情,您可能仍然需要 setupController() 方法(这仍然是您将模型以外的值从路由移动到模板的唯一方法,以便它们可以传递给组件),当然你的 controller/component 实现可能有其他小的变化,但这是它的基本要点。

为了在控制器被弃用时做好最充分的准备,您应该通过使用组件来避免它们。