2016-04-07 12 views
0

Ich habe eine Komponente, die eine Aktion bis zu seiner Vorlage Router Blase sollte.Ember Komponente Aktion sprudelt nicht bis Vorlage Router

ich den Namen der Aktion an die Komponente zu übergeben:

{{project-table projects=model viewProject="viewProject"}} 

Inside my Komponente (Projekt-Tabelle), die ich habe:

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    actions: { 
     viewProject: function (project) { 
      this.sendAction('viewProject', project); 
     } 
    } 
}); 

Innerhalb der Komponentenvorlage, die ich habe:

<button type="button" {{action "viewProject" project}}> 
    My Button 
</button> 

Last but not least, habe ich meinen Router:

actions: { 
    viewProject: function (project) { 
     this.transitionToRoute('project', project); 
    } 
} 

Die Aktion der Komponente wird korrekt aufgerufen. Von da an sprudelt die Aktion jedoch nicht auf. Irgendwelche Ideen, was ich falsch machen könnte?

+0

nicht sicher, ob dies ein Tippfehler ist, aber Ihr Projekt-Tabelle-Controller erweitert Ember.Component, so ist es kein Controller. –

+0

Können Sie Ihren Aktionen unterschiedliche Namen geben? – ykaragol

+0

Ist 'Projekt-Tabelle' in einer anderen Komponente? – locks

Antwort

2

@ JB2, Ihr Code ist fast perfekt, und ich bin mir sicher, dass die Aktion Blase bis zur Route-Ebene ist.

Bitte beachten Sie jedoch, dass Route nur transitionTo Methode hat. http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo

In einem Controller können Sie transitionToRoute Methode verwenden. http://emberjs.com/api/classes/Ember.Controller.html#method_transitionToRoute

Es ist einfach zu mischen. :) Ich überprüfe das API-Dokument auch ziemlich oft, welches könnte ich verwenden und wo. :)

+1

Danke Zoltan. Ja, das war es! :-) Uff, die Zeit, die ich für dieses haha ​​verbracht habe. Vielen Dank!! – JB2