我的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事件中,如何在我的路由器生成的控制器实例(MessagesController)上调用testme()方法?
谢谢你们!
答案 0 :(得分: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');
}
});
希望有所帮助