繁体   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