2016-05-12 3 views
1

Ich habe ein System erfunden, wo Kindkomponenten dynamisch nach einer Variablen generiert werden. Aber alle möglichen Komponenten teilen sich eine Methode. Wie kann dies erreicht werden?Wie können untergeordnete Komponenten auf Aktionen der übergeordneten Komponente in EmberJS zugreifen?

Geordnete Komponente:

export default Ember.Component.extend({ 
    actions: { 
    someAction() {} 
    } 
}); 

In der übergeordneten Ansicht wird die Komponente namens mit {{Komponente}} Helfer

{{component 'someComponent'}}

Kinder Komponente:

export default Ember.Component.extend({}); 

Hier muss ich auf die someAction in der übergeordneten Komponente in der untergeordneten Ansicht zugreifen.

zB:

<button {{action 'someAction'}}>Click me !!</button> 

Ich bin mit Ember 1.13.0

Antwort

1

Sie müssen Sie die Aktion geben:

{{component 'someComponent' someAction=(action 'someAction')}} 

Und dann rufen Sie es in Ihrem Kind Komponente:

this.attrs['someAction'](); 

Sie können dies anziehen eine übliche Mischung:

actions: { 
    someAction() { 
    this.attrs['someAction'](...arguments); 
    } 
} 
Verwandte Themen