我想知道什麼是通過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
你能解釋你的功能包裝是什麼意思嗎? –