Mi chiedevo qual è il modo migliore per passare le funzioni attraverso 2 o più livelli di componenti? Non esiste un modo semplice per saltare la funzione quando si utilizzano i collegamenti "&"?Qual è il modo migliore per passare le funzioni tra i componenti interni in AngularJS 1.5?
Ecco un caso d'uso:
angular.module('app', []).component('app', {
controller: class AppController {
doSomething (data) {}
},
template: `
<sub-component on-do-something="$ctrl.doSomething(data)">
</sub-component>
`
})
ps: sto usando ngRedux, in modo tale scenario è molto comune
EDIT:
Il problema è: per il codice qui sopra per il lavoro , ogni controller di componente interno sarebbe simile a questo:
.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>
`
});
E quindi dovrei passare d proprio _doSomething
anziché doSomething
direttamente.
ps: io non sto usando inclusione qui
Usare i servizi? ;-) –
@DmitriZaitsev che non è la soluzione ideale dato che sto usando redux e i concetti di componenti smart & dumb :( – Hodes
Puoi spiegare cosa intendi con la funzione wrap? –