4

今天我有了一个令人震惊的发现:在视图上引用的动作是由它们的路由处理的,而不是由引用它的视图处理的。前任:

<a href="#" {{action edit}}>Edit this</a>

edit动作必须在 Route 中定义,而不是在 View 中。当我在 View 负责处理此类事件之前不使用路由器时,我对此感到非常高兴。

任何人都可以请:

  1. 向我解释为什么 Route 必须处理事件,以及这样做的好处是什么
  2. 告诉我如何在处理此类动作/事件时将控制权交还给视图?
4

1 回答 1

16

将目标设置为视图

<a href="#" {{action edit target="view"}}>Edit this</a>

如果您的操作在控制器中,则使用

<a href="#" {{action edit}}>Edit this</a>

默认目标是指视图的控制器

我建议您阅读此参考: Ember Action Helper

根据上述参考资料,我想提一些关键点

  • 在一个典型的 Ember.Router 支持的应用程序中,通过使用 {{outlet}} 帮助器管理视图,操作将被转发到当前控制器。

  • 如果控制器中未定义该操作,则以当前路由为目标。

  • 于 2012-11-01T14:03:49.353 回答