javascript - 应该在 Controller 上定义关闭 Action

标签 javascript ember.js closures action

Ember 1.13.10

我想尝试关闭 Action ,所以我定义了一个路由:

import Ember from 'ember';

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

和模板:

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

但我收到错误消息:在(生成的 test.index Controller )中找不到名为“doSave”的操作。

但是它是在路由上定义的。考虑到 Controller 在 Ember 中有点被弃用的事实,我希望应该在路由而不是 Controller 上定义操作。 为什么应该在 Controller 上定义关闭操作有具体原因吗?

最佳答案

闭包操作与 Controller 而不是路由进行通信,一旦可路由组件着陆,它们将替换 Controller 。

在您的情况下,如果您希望冒泡操作,则必须从 Controller 发送它。

关于javascript - 应该在 Controller 上定义关闭 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33866969/

相关文章:

python-2.7 - Mincemeat:提供额外的参数来映射和减少带有闭包的函数

javascript - 关闭总是需要在 IIFE 中吗?

javascript - 为什么JavaScript中Masking后得到的值不准确?

javascript - 突出显示节点及其邻居不与另一个不透明度过滤器同步工作

javascript - 在不工作的模式中包装处理任务

javascript - 如何从选定的 html 中删除节点,而不将其从当前页面中删除?

javascript - 如何在 ember 中获取组件的值?

ember.js - 如何添加与 Ember Data 本地存储适配器/串行器的 hasMany 关系?

javascript - 使用 ember.js 异步批量查找或创建

循环内的 JavaScript 闭包 – 简单的实际示例