Ember 无法将路由操作传递给组件

2024-07-03

我有一个组件需要接收我在路线上放置的操作,因为它的工作是刷新模型的一部分。

显然我可以从按钮调用路由操作,但我无法将相同的操作传递给组件。

路由器

export default Ember.Route.extend({
    actions: {
        doSomething: function(){
            alert('Router handled!');
        }
    }
});

页面模板

<button {{action "doSomething"}}>speak</button>
{{myComponent onGetUsers=(action "doSomething")}}

组件

export default Ember.Component.extend({
    actions: {
        onPageClicked: function(pageNo){
            this.sendAction('onGetUsers', pageNo);
        }
    }
});

单击按钮有效。当我使用该组件时,我使其执行操作,但 sendAction 永远不会工作或触发。

是否存在不能将操作传递给下线组件的规则?或者我在代码中做错了什么?


sendActions- 可用于组件到组件的通信。
send- 可用于控制器路由通信。 两种方法都不能使用。

对于路由通信的组件,您可以使用以下插件。

ember install ember-route-action-helper

通过在route中定义action,可以从template.hbs中调用它

<button {{action (route-action 'appRouteAction' 'fromApplication.hbs') }}>button</button>

您可以从 my-component.hbs 调用

<button {{action (route-action 'appRouteAction' 'from MyComponent.hbs') }}>My-Component button</button>

如果您想先调用组件操作,然后再调用路由中的操作,

在 template.hbs 中 - 包含带有路由操作作为关闭操作的组件,

{{my-component2 appRouteAction=(route-action 'appRouteAction')}}

在我的组件2.hbs中,

<button {{action 'appRouteAction' 'CallFromComponentActions-my-compoent2.hbs' }}>CallFromComponentActions</button>

在我的组件2.js中

import Ember from 'ember';
export default Ember.Component.extend({
  actions:{
    appRouteAction(fromWhere){
      console.log('appRouteAction in my-component ');
      this.get('appRouteAction')(...arguments);
    }
  }
});

样本旋转 https://ember-twiddle.com/bdce15cf467f0af4a35e888b6126f676?openFiles=templates.application.hbs%2Ctemplates.components.my-component2.hbs- 玩 ember-route-action-helper-addon。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ember 无法将路由操作传递给组件 的相关文章

  • 与查询参数一起使用时,Ember .observe() 返回两次回调

    http jsbin com vowup 2 http jsbin com vowup 2 如果我单击更改为随机 程序将登录控制台两次 由于某些奇怪的原因 将修订变量设置为字符串时它可以正常工作 但对于数字或任何其他类型的变量会记录两次 将
  • 使用 EmberData 在本地存储中缓存远程数据

    我有一个关于使用 Ember 加载和缓存远程对象的问题 我正在开发一个 Ember 应用程序 它通过 REST API 使用服务器端存储 一些获取的数据很少发生变化 因此每次应用程序加载时都从服务器获取数据是不必要的 但这对于需要离线工作并
  • 在哪里放置固定装置?

    我应该在使用 ember cli 生成的 Ember JS 应用程序中的哪里定义固定装置 我尝试过很多地方 例如app js并在一个名为 fixtures 的文件夹中 经过一番挖掘后我发现改变Ember MODEL FACTORY INJE
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • 绑定 Ember TextField 中的计算属性

    我正在尝试将我的数据模型绑定到 Ember js 中的文本字段 该模型有一个表示货币值的字段 例如 1 000 50 然后用户可以更改该值 Ember 接收数字 1000 50 形式的数据 非货币格式 我将视图绑定到具有良好格式的计算属性
  • Ember CLI 中的把手助手语法

    在这篇文章中 使用 Handlebars js 迭代基本的 for 循环 https stackoverflow com questions 11924452 handlebar js iterating over for basic lo
  • 使用 Node.js 的前端 javascript 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 ActiveModel::Serializers 包含两个父 json 数组

    我正在尝试发送如下所示的前端应用程序 json facilities id 5 name happy days ranch location address 1424 Pastoral Lane zipcode 25245 instruct
  • EmberJS 支持单字母单词模型吗?

    我无法真正确定问题是 Ember 还是 Ember 数据 或者甚至是一个问题 但发生的情况如下 假设你的模型被称为tell me a story 如果您使用 ActiveModelAdapter 这将是您的 JSON 应该提供的名称 无论如
  • emberjs:在应用程序初始化()之后添加路由

    我在使用 emberjs 构建基于路由器的应用程序时遇到了以下问题 我的应用程序的结构简化如下 var App Em Application create App ApplicationController Em Controller ex
  • 在路由之间传递参数

    Ember 中将参数从一个路由发送到另一个路由的 适当 方式是什么 例如 我有两条这样定义的路线 this resource activities path activities on date function this route ne
  • Ember 模板中的访问常量

    不确定正确的 Ember Way 是什么来做到这一点 我有以下模板 我想要三个task item list组件实例 每个实例都有不同的taskState价值 显然 我想摆脱神奇的数字 h4 Tasks h4 div h5 Backlog h
  • ember-data:如何制作正在保存/已保存的闪存消息

    为了在我的应用程序顶部制作一个黄色的 正在保存 已保存 指示符消息 我希望有一个布尔属性来指示当前是否有任何余烬数据记录正在运行 我试过这个 App store DS Store create isSaving gt for record
  • Ember 数据 - 动态段和查询参数在一起?

    使用 Ember 1 8 0 和 Ember Data 1 0 0 beta 11 Ember 商店的findQuery 函数似乎无法处理动态段 或者至少我无法在任何地方的文档中找到它 例如 给定以下路线 MyApp Router map
  • Ember-cli 夹具加载

    我确信我错过了一些小而愚蠢的东西 但似乎无法加载我的装置 这是我有 应用程序 模型 todos js import DS from ember data var Todo DS Model extend title DS attr stri
  • Ember.js 中按钮的绑定启用状态

    我刚刚开始接触 Ember js 但我遇到了一些我确信我不理解的东西 我有一个选定的对象控制器 它有一个 Ember Object 内容 即当前选择的模型 该模型有一个属性 isDirty 基本上我希望仅当对象脏且需要保存时才启用表单上的保
  • EmberJS:如何使用 ember-qunit 的 moduleFor 测试控制器操作,它使用 ember-data 存储

    我想测试这样的控制器操作 createNewBase function var attributesForNewBase this get model getProperties self this newBase this store c
  • 路由仅在页面刷新时加载 - Ember JS

    我目前正在学习 Ember 正在制作一个简单的应用程序 但我遇到了一个奇怪的问题 我有一个路线设置 它仅在我重新加载页面时提取数据 这是我的代码 Start Ember application App Ember Application c
  • 在 ember.js 中定义多分段 catch all 路由

    我正在使用 Ember js 我想创建一个捕获所有路由 以便在用户导航到与资源不匹配的 URL 时将其发送回应用程序的根目录 我正在使用历史API 我已经这样实现了 App Router map function this resource
  • 在 ember.js 中定义多分段 catch all 路由

    我正在使用 Ember js 我想创建一个捕获所有路由 以便在用户导航到与资源不匹配的 URL 时将其发送回应用程序的根目录 我正在使用历史API 我已经这样实现了 App Router map function this resource

随机推荐

  • 如何在Mac上更改Docker镜像的安装目录?

    Docker 镜像存储在 HOME Library Containers com docker docker Data但如何将这些大文件移动到外部驱动器呢 我尝试过符号链接 但没有用 我也找不到 g选项docker如上所述here http
  • 单元测试理念

    我有一个 食谱 方法 我正在尝试使用 TDD 编写它 它基本上调用不同的方法 并偶尔根据这些方法的结果做出决策 public void HandleNewData Data data var existingDataStore dataPr
  • 在 Safari 中实时编辑 JavaScript?

    在 Chrome 中这是可能的 但我没有找到在 Safari 中做到这一点的方法 是否可以 如何 目前这是不可能的
  • 如何将路径字符串的格式更改为不同的操作系统?

    我需要将文件路径从 MAC 更改为 Windows 我正要做一个简单的操作 replace of any with 但我突然想到可能有更好的方法 例如我需要改变 foo bar file txt to foo bar file txt Th
  • Extjs4.2.1 - 将 json 加载到树面板失败

    我创建了一个树面板 然后创建store like var store Ext create Ext data TreeStore autoload false proxy type ajax url data php reader type
  • Perl 如何在并行处理中共享全局变量?

    use Parallel ForkManager use LWP Simple my pm new Parallel ForkManager 10 our a 0 LINK 10 203 20 20 20 10 101 01 10 for
  • 如何从 Eclipse 推送新项目到 Github?

    我正在尝试将我的新项目推送到最近创建的 Github 存储库中 但有 SSH 身份验证问题 我不知道密钥管理 也不知道使用哪个密钥以及如何使用 在我的 github Web 仪表板中 我有 2 个密钥 一份使用我的登录帐户 一份使用 Win
  • SQL Null 设置为零以进行添加

    我有一个 SQL 查询 MS Access 需要添加两列 其中任何一列都可能为空 例如 SELECT Column1 Column2 Column3 Column4 AS Added Values FROM Table 其中 Column3
  • Qunit 中挂起的 Ember 并发超时

    在 Ember 中 我有一个组件可以启动永无止境的轮询 以保持一些数据最新 就像这样 export default Component extend pollTask task function while true yield timeo
  • Java算法制作直金字塔[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 4
  • 何时使用客户端或服务器端? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我刚刚完成了我的 CS 项目中的 Web 开发课程介绍 然后想知道一些简单的事情 什么时候应该使用 JavaScript 客户端 而不是服务器端
  • 如何更改移动字体意味着安装自定义字体到系统[重复]

    这个问题在这里已经有答案了 如何更改或安装自定义字体到 Android 设备 在更改 Android 设备的系统字体的自定义启动器中可以使用什么类或方法 没有一个明确的地方 至少我能找到 表明你不能这样做 然而 谷歌搜索引导您找到两种且只有
  • 除了工件之外,如何交付属性文件?

    我在用Maven2构建一个 WAR 项目 某些属性文件取决于发行版的目标环境 除了 WAR 之外 我还想提供一个名为datasource xml 该文件已存在于我的项目目录中 但包含将在构建期间过滤的属性 即一些 foo bar 换句话说
  • 通过JS暂停视频文件下载?

    是否可以暂停视频文件下载 我假设是 http get 请求 并稍后恢复 我的网站 ajax 请求所有页面 如果用户需要下载其他内容 以停止使用过多的带宽 我需要暂停视频下载 设想 用户访问网页 视频开始下载 用户与网页的另一部分交互 视频停
  • 是否可以复制 xcode 派生的数据缓存?

    我们使用 Travis CI travis ci com 构建 xcode iOS 项目 我们的项目编译时间相当长 本地 5 分钟 travis CI 15 分钟 为了减少编译时间 我们尝试缓存DerivedData内容使用xcodebui
  • AsyncTask 破坏了自定义列表视图

    嘿 我有一个列表视图 我使用 asynctask 从资源加载并在加载列表之前显示进度栏 目前 进度条不会在开始时显示 并且也会破坏列表 任何帮助将不胜感激 通过打破列表 我的意思是它像这样在彼此之上加载元素 而不是一次加载 10 个元素 这
  • 如何在 Solr 5 中创建新的核心?

    目前我们正在使用阿帕奇索尔 4 10 3 OR H埃利奥搜索D分布为S奥尔 HDS 在 Solr 5 中 发行版中提供的 bin solr 脚本支持创建核心 尝试 bin solr create help 快速介绍 从上面的帮助文档中 您可
  • 带有 MyBatis TypeHandler 的空对象模式

    我一直在尝试定制TypeHandler在 MyBatis 中 这样对于null数据库中的列 MyBatis 返回一个实现空对象模式 http en wikipedia org wiki Null Object pattern而不是有一个nu
  • JUnit 4.12:测试 util 类

    我在 Eclipse 中有一个名为 TdkUtils 的 Maven 项目 带有以下 pom xml 这是一个 utils 项目 所以我想创建一个jar 将其放入存储库中并在其他项目中使用它 在这个项目中我有这样的课程 Service sm
  • Ember 无法将路由操作传递给组件

    我有一个组件需要接收我在路线上放置的操作 因为它的工作是刷新模型的一部分 显然我可以从按钮调用路由操作 但我无法将相同的操作传递给组件 路由器 export default Ember Route extend actions doSome