有没有办法在Ember JS中使用link-to
或action
来调用来自不同控制器的动作?
我正在尝试创建一个在不同模板上显示的注销链接,但所有这些模板都将具有不同的控制器。退出逻辑将存在SessionController
....
我在想像
这样的东西 {{link-to 'sign_out' controller='session'}}Sign out{{/link-to}}
或
<a {{action 'sign_out' controller='session'}}>Sign out</a>
答案 0 :(得分:3)
我会让它冒泡到我的应用程序路由,然后使用controllerFor
获取会话控制器的实例,然后向其发送操作sign_out
。
冒泡:http://emberjs.com/guides/templates/actions/
App.ApplicationRoute = Em.Route.extend({
actions: {
sign_out: function(){
var session = this.controllerFor('session');
session.send('sign_out');
}
}
});
<button {{action 'sign_out'}}> Sign Out</button>