Wenn Sie this.sendAction('actionName')
verwenden Sie sprudelt eine Aktion auf, die Sie auf dem Bauteil/Controller fangen müssen werden mit actions
//controller/route/component.js
actions: {
actionName: function() {
//Do something
}
}
Wenn Sie, dass bis die Kette senden möchten, werden Sie Rufen Sie erneut sendAction('')
auf der Komponente/Controller und fangen Sie es erneut auf dem übergeordneten (und so weiter).
Der andere Ansatz this.get('action')()
verwendet Schließaktionen, die reguläre JavaScript-Funktionen sind. Dies ist der bevorzugte Weg, um in Ember 1.13.X, soweit ich weiß, Aktionen aufzurufen. Eine nette Sache, die Schließaktionen haben, ist, dass Sie Rückgabewerte haben können. Was bedeutet, dass Sie etwas davon haben kann:
//a controller
actions: {
saveResult() {
return this.get('model').save(); //notice the return (which returns a promise)
}
}
//some template that uses the controller above
{{a-component save=(action 'saveResult')}} // Passes the saveResult action to the component
//a-component.js
actions: {
someAction: function() {
this.attrs.save().then(() => {
//Do something with the return value
});
}
}
kann viel über Schließung Aktionen geschrieben werden, aber andere haben viel besser als ich es könnte geschrieben, so empfehle ich folgende Artikel:
Und wenn Sie mit dem gesamten DDAU-Konzept (Data Down Actions Up) neu sind, empfehle ich wirklich, das Konzept im Allgemeinen Sam's article.
Update: Es gibt auch ein Addon (in den Kommentaren von @locks verlinkt), das closure actions to bubble to routes erlaubt.
Die dezimale Version ist wichtig - Ember 2.was? –
ember 2.2.0 Entschuldigung – maximusmusterus
Gehen Sie davon aus, dass die neueste Version der Guides so aktuell wie möglich ist. Das Dokumentationsteam hat sich viel Mühe gegeben, es so zu machen. – locks