2013-04-30 5 views
0

Actuellement, j'ai un View dans mon modèle d'application qui envoie un événement à ApplicationController. Je préférerais simplement l'envoyer à l'autre contrôleur, PlaylistController, directement à partir de la vue, mais je n'arrive pas à comprendre comment.Envoi d'une action d'affichage à un contrôleur spécifique

Ceci est mon ApplicationController actuelle

App.ApplicationController = Ember.ArrayController.extend({ 
    needs:['playlist'], 
    changeSong: function(delta) { 
    this.get('controllers.playlist').send('changeSong', delta); 
    } 
}); 

Et voici la vue, ce qui est dans le modèle d'application:

App.NextSong = Ember.View.extend({ 
    classNames: ['entypo', 'to-end'], 
    tagName: 'a', 
    click: function() { 
    this.get('controller').send('changeSong', 1); 
    } 
}); 
+1

Dans ce cas précis, pouvez-vous simplement utiliser 'click'? Vous devez définir votre autre contrôleur sous la propriété 'needs' de tout contrôleur qui est en charge du modèle. – mehulkar

+0

c'est la majeure partie de la bataille. Question complémentaire, y a-t-il un moyen de passer des paramètres à l'action? Je pourrais certainement écrire juste une prochaine, méthode prev qui passe -1, 1 à une méthode changeSong, mais ce serait bien de passer -1, ou 1 à changerSong, en sautant ces deux autres méthodes mentionnées – paulruescher

+0

hmm, je ne suis pas Assurez-vous de transmettre des valeurs 'number', mais vous pouvez passer des objets en tant que contexte. ' mehulkar

Répondre

1

copie Juste ma réponse dans les commentaires ci-dessus.

Dans ce cas précis, vous pouvez utiliser:

<a {{action changeSong target="controllers.otherController"}}>click</a>

Vous devez définir votre autre contrôleur dans la propriété needs de tout ce contrôleur est en charge du modèle.

Questions connexes