【问题标题】:Closure actions should be defined on controller关闭动作应该在控制器上定义
【发布时间】:2015-11-23 08:57:38
【问题描述】:

灰烬 1.13.10

我想尝试一下闭包动作,所以我定义了一个路由:

import Ember from 'ember';

export default Ember.Route.extend({
  actions: {
    doSave() { ... }
  }
});

和模板:

{{my-component onSave=(action 'doSave')}}

但我收到错误消息:An action named 'doSave' was not found in (generated test.index controller).

但是它是在路由上定义的。鉴于在 Ember 中不推荐使用控制器这一事实,我希望该操作应该在路由而不是控制器上定义。 应该在控制器上定义关闭操作是否有特定原因?

【问题讨论】:

  • 关闭动作与控制器通信,如果你想将它冒泡到你需要在你的控制器上执行一个动作发送它的路由。
  • @Kitler 你知道这是否记录在某处吗?
  • Afaik closure actions 目前未记录待处理的可路由组件。
  • 我认为控制器将被组件替换,但应用程序的操作和其他逻辑内容不会在路由中..
  • 它们将被替换,但直到可路由组件陆地控制器成为您的首选。

标签: javascript ember.js closures action


【解决方案1】:

闭包动作与控制器而不是路由通信,一旦可路由组件着陆,它们将替换控制器。

在您的情况下,如果您希望冒泡动作,则必须从控制器发送它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2016-05-31
    • 2018-06-11
    • 2011-09-18
    相关资源
    最近更新 更多