我想知道将功能向下传递到 2 个或更多级别的组件的最佳方法是什么?使用“&”绑定时没有简单的方法来跳过函数换行吗?
这是一个用例:
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>
`
});
然后我必须传递_doSomething
而不是doSomething
直接传递。
ps:我这里没有使用嵌入