Aura.js闪电组件:从超级/父组件触发嵌套/子组件的方法
Aura.js Lightning Components: Firing a nested/child component's methods from the super/parent component?
我在与嵌套组件通信时遇到问题。我希望组件能够在嵌套组件的控制器中运行方法.js(或助手)。我已经尝试了两个事件和通过,但没有运气。下面是示例标记:
<!-- myEvent.evt -->
<aura:event type="APPLICATION">
</aura:event>
<!-- super-component -->
<aura:component>
<aura:registerEvent name="myEventName" type="c:myEvent"/>
<c:my_Nested_Component />
<ui:button press="{!fireEvent}"
<aura:component>
//super-component_controller.js
({
fireEvent: function(component){
var myEvent = component.getEvent("myEventName");
myEvent.fire();
console.log('event fired');
}
})
------------------------------------------
<!-- nested-component -->
<aura:component>
<aura:handler name="myEventName" event="c:c:myEvent" action="{!c.gotEvent}" />
<aura:component>
//nested-component_controller.js
({
gotEvent: function(component, event){
console.log('received event!');
}
})
这行不通。我尝试了与超级超级组件上嵌套组件上放置的完全相同的代码,并且效果很好。超级超级组件收到了事件。但是嵌套组件无法做到。我认为这与事件只冒泡有关(尽管文档确实说只有组件事件是这种情况,而不是应用程序事件)。
所以我在网上阅读的另一个选项是使用 .我尝试这样做,但这也不适用于与嵌套组件交谈。
父组件如何导致嵌套组件上的方法触发?
谢谢
这个问题在这里得到了解答: https://salesforce.stackexchange.com/questions/108544/lightning-components-firing-a-nested-child-components-methods-from-the-super-p
问题是我使用的是component.getEvent()而不是应用程序级别事件所必需的$A.get()。此外,注册事件的名称不是从处理程序引用事件的方式,而是使用其实际文件名的方式,如下所示:
//super-component_controller.js
({
fireEvent: function(component){
var myEvent = $A.get("e.c:myEvent");
myEvent.fire();
console.log('event fired');
}
})
<!-- nested-component -->
<aura:component>
<aura:handler event="c:myEvent" action="{!c.gotEvent}" />
<aura:component>
谢谢@MohithShrivastava弄清楚这个问题!
相关文章:
- 在嵌套组件中使用 react 组件时模块中断
- 在 React 中嵌套组件,props 不会传递给子组件
- 如何使用嵌套的 React 组件从“链接页面”的顶部开始
- ReactJs - 列表组件中的嵌套列表组件
- 嵌套的React/Rerelay组件未接收道具
- DefaultRouter组件中的嵌套路由
- 反应:在嵌套组件上冒泡点击事件
- 如何访问Vue.js中深度嵌套的子组件中的数据
- 根据location.hash传递的数据重新呈现ReactJS嵌套的子组件
- 如何使用React和Redux在嵌套容器中测试组件
- Angular 1.5 嵌套组件绑定父值
- 在 knockoutjs 中嵌套组件
- 您如何处理 Angular2 中嵌套组件的依赖关系
- 获取嵌套在聚合物纸张对话框中的自定义Web组件内内容的客户端高度
- 在嵌套的边框容器内容窗格小组件中未检测到区域属性
- 如何处理 React 嵌套组件循环依赖?(使用 es6 类)
- AngularJS通过嵌套组件向上传播更改
- Aura.js闪电组件:从超级/父组件触发嵌套/子组件的方法
- 如何在 RivetsJS 中处理递归嵌套组件
- 了解嵌套组件绑定在 KnockoutJS 上的工作原理