EmberJS:如何处理来自View而不是Route / Controller的操作

时间:2012-11-01 13:48:40

标签: view ember.js ember-router

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

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

必须在路线中定义edit操作,而不是在视图中定义。当我没有使用路由器之前,View是负责处理此类事件的人,我真的很高兴。

任何人都可以请:

  1. 向我解释为什么路线必须处理这个事件,以及这个
  2. 有什么好处
  3. 告诉我如何在处理此类行动/事件时将控制权交还给View?

1 个答案:

答案 0 :(得分:16)

将目标设为视图

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

如果您的操作位于控制器中,请使用

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

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

我建议你仔细阅读参考: Ember Action Helper

我想根据上述参考提及一些关键点

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

  • 如果未在控制器中定义操作,则会定位当前路线。