0

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

在视图的单击事件中,如何调用路由器生成的控制器实例(MessagesController)上的 testme() 方法?

多谢你们!

4

1 回答 1

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

希望能帮助到你

于 2013-05-23T21:26:51.293 回答