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。