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

Ren*_*ivo 4 view ember.js ember-router

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

<a href="#" {{action edit}}>Edit this</a>
Run Code Online (Sandbox Code Playgroud)

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

谁能请:

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

Mud*_*Ali 16

将目标设置为视图

<a href="#" {{action edit target="view"}}>Edit this</a>
Run Code Online (Sandbox Code Playgroud)

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

<a href="#" {{action edit}}>Edit this</a>
Run Code Online (Sandbox Code Playgroud)

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

我建议你仔细阅读这篇参考文献: Ember Action Helper

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

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

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