我想知道什么是通过2个或更多级别的组件传递函数的最佳方式?使用'&'绑定时,没有简单的方法可以跳过功能换行?在AngularJS 1.5的内部组件之间传递函数的最佳方式是什么?
下面是一个使用案例:
angular.module('app', []).component('app', {
controller: class AppController {
doSomething (data) {}
},
template: `
<sub-component on-do-something="$ctrl.doSomething(data)">
</sub-component>
`
})
PS:我使用ngRedux,所以这样的情况是很常见的
编辑:
的问题是:对于上述工作的代码,每个内部组件控制器是这样的:
.component('subComponent', {
bindings: {
doSomething: '&'
},
controller: function SubComponentController() {
this._doSomething = param => this.doSomething({data: param});
},
template: `
<inner-component do-something="$ctrl._doSomething(data)">
</inner-component>
`
});
.component('innerComponent', {
bindings: {
doSomething: '&'
},
controller: function InnerComponentController() {
this._doSomething = param => this.doSomething({data: param});
},
template: `
<sub-inner-component do-something="$ctrl._doSomething(data)">
</sub-inner-component>
`
});
然后,我不得不通过d直接拥有_doSomething
而不是doSomething
。
PS:我没有使用transclusion这里
使用服务? ;-) –
@DmitriZaitsev这不是理想的解决方案,因为我使用的是REDX和智能&哑元组件的概念:( – Hodes
你能解释你的功能包装是什么意思吗? –