从组件到路由的动作不再冒泡(Ember 1.13)
Actions not bubbling up from Component to Route (Ember 1.13)
对于CRUD中的每一行,我都有一个item-row.js组件和一个触发"addNewItem"的按钮,因为我需要做一些额外的处理。
嗯,动作从来没有气泡到路由,所以我相信我做错了什么。烬向导会告诉我要做什么,所以我完全迷失在这里。我错过什么了吗?
代码:模板是这样的:
// my-template.hbs
{{#each model as |item|}}
{{#item-row
id = item.id
text = item.text
}}
{{item.title}}
{{/item-row}}
{{/each}}
在该组件的模板中:
// item-row.hbs
// a couple of HTML here
<button {{action "addNewItem"}}> </button>
当然我有一个分量
// item-row.js
export default Ember.Component.extend({
actions: {
addNewItem: function(){
this.sendAction('addNewItem');
// already tried this.sendAction() without the parameter..
return true;
}
}
});
最后,我的路线:
// item.js
export default Ember.Route.extend({
actions: {
addNewItem: function(){
alert('reached the route!!!!!');
// this is never printed =/
}
}
});
谢谢你的帮助
组件中的sendAction
方法将在组件上查找与您传递该方法同名的属性,在本例中为'addNewItem'
。因此,为了使您的示例工作,您需要将addNewItem = 'addNewItem'
传递给item-row
组件,以便该组件知道在路由上触发什么动作。
你可以看看这个JSBin,作为我所说的一个例子。它使用全局变量而不是ES6模块,但希望应该足够简单,可以遵循:)
烬指南的这一部分也可能对阅读有帮助。
相关文章:
- 强制模板刷新ember.js
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- Ember Data DS.Model's set函数不起作用
- Ember.js-接口状态应该存储在哪里
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 在ember/handlers中使用value和valueBinding有什么区别
- 当在Ember中点击一个项目时,我如何将一个活动类添加到项目列表中
- Uncaught TypeError:undefined不是函数-ember js
- 有没有一种方法可以列出Ember.Object的所有绑定
- 将ember对象的数组从ember组件传递到模板
- 不再需要时使用jQuery/kill实例
- 尝试JSON.stringify Ember模型时Id丢失
- 手动触发ember.js中的属性更改
- 当我更改innerHtml时,引导选项卡事件不再工作
- 如何在ember单元测试中模拟_super()方法
- Ember.js(2.5.0)如何设置嵌套对象值
- 使用Ember-cli项目中的ES6库
- I'我得到这个.get()在ember中未定义
- 升级到Ember 1.0计算属性在视图中不再有效
- 从组件到路由的动作不再冒泡(Ember 1.13)