Ich habe eine solche Komponente:Emberjs 1.13.0-Call-Aktion der Komponente
App.MyNiceComponent = Ember.component.extend({
actions: {
save: function() { … }
}
});
Die Vorlage für sie:
<h1>My Nice Component</h1>
{{ yield this }}
Überall in einer anderen Vorlage:
{{#my-nice as |mn| }}
…
<a onclick={{ action 'save' }}>Save</save>
{{/my-nice}}
Ein Klick auf dem Link make Ember versuchen, die Aktion im Routen-Controller auszulösen. Ich schätze, das liegt daran, dass die Version, die wir hier verwenden, so alt ist, aber gibt es irgendeine Möglichkeit, Ember die Komponenten Action nennen zu lassen oder einfach einen Funktionsverweis an den Link zu übergeben, damit dieser aufgerufen wird?
In einer weiteren Komponente, die bestimmte untergeordnete Komponenten so entworfen wird, könnte ich es schaffe es, wie dies zu tun:
{{#my-nice}}
{{#a-child task="do this"}}
{{/my-nice}}
In dieser:
App.AChildComponent = Ember.Component.extend({
targetObject: Em.computed.alias('parentView'),
task: '',
action: 'onChildClick', //present as Action in the parent Compoent
click: function(){
this.sendAction('action', this.get('task'));
}
})
In hbs dies so aussehen würde Fall würde ich wirklich gerne Ember auslösen die Komponenten Aktionen, ohne den Weg über den Controller ...
Vielen Dank im Voraus.
könnten Sie meine Antwort akzeptieren? Es wird anderen helfen – maheshiv