Fonksiyonları 2 veya daha fazla bileşen seviyesinden geçirmenin en iyi yolunun ne olduğunu merak ediyordum? '&' bağlantılarını kullanırken işlev sarmanın basit bir yolu yok mu?AngularJS 1.5 içindeki iç bileşenler arasındaki işlevleri iletmenin en iyi yolu nedir?
angular.module('app', []).component('app', {
controller: class AppController {
doSomething (data) {}
},
template: `
<sub-component on-do-something="$ctrl.doSomething(data)">
</sub-component>
`
})
ps: Burada
bir kullanım amaçlarından ben ngRedux kullanıyorum, bu yüzden bu tür senaryo çok yaygındırDÜZENLEME:
sorundur: işe yukarıdaki kodu için Her iç bileşen denetleyicisi şöyle görünecektir:
.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>
`
});
Ve sonra d geçmek zorundayım doğrudan doSomething
yerine kendi _doSomething
.
ps: Ben sizin alt bileşenlerin denetleyici bir sarmalayıcı işlevi sağlamak için gerekli değildir burada
hizmetleri kullanma: Burada
bir çalışma Plunker nedir? ;-) –
@DmitriZaitsev redux ve akıllı ve aptal bileşenleri kavramları kullanıyorum verilen ideal bir çözüm değil :( – Hodes
Fonksiyon sargısı ile ne demek istediğini açıklayabilir misiniz? –