2013-05-23 4 views
0

У меня есть следующий код в моем приложении Ember ...Как Ссылку маршрутизатор сгенерированного контроллер от View

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}} 

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

Спасибо, ребята!

ответ

0

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

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'); 
    } 
}); 

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

Смежные вопросы