Как ссылаться на сгенерированный маршрутизатором контроллер из представления

У меня есть следующий код в моем приложении Ember...

App.Router.map(function () {
    this.resource('messages', { path: '/messages' }, function() {
        this.route('message', { path: '/:message_id' });
        this.route('unanswered', { path: '/unanswered' });
    });
});

App.MessagesRoute = Ember.Route.extend({
    setupController: function(controller, playlist) {
        controller.set('model', App.Message.find());
        //debugger;
    }
});

App.MessagesController = Ember.ArrayController.extend({
    testvar: 'hi',
    testme: function() {
        debugger;
    }
});

App.MyButton = Ember.View.extend({
    tagName: 'button',
    template: Ember.Handlebars.compile('Sort'),

    click: function() {
        App.MessagesController.testme();   
    }
});

... и в моем шаблоне...

{{view App.MyButton}} 

В событии click представления, как я могу вызвать метод testme() на экземпляре контроллера (MessagesController), который был сгенерирован моим маршрутизатором?

Спасибо, парни!

1 ответ

Изнутри вашего MyButton просмотреть обработчик события click, который вы можете сделать, вы можете сделать это:

this.get('controller').send('testme');

Примечание: чтобы это работало MyButton должен быть ребенком MessagesView

Пример:

App.MyButton = Ember.View.extend({
  tagName: 'button',
  template: Ember.Handlebars.compile('Sort'),
  click: function() {
    this.get('controller').send('testme');
  }
});

Надеюсь, поможет

Другие вопросы по тегам