使用link-to从不同的控制器调用操作

时间:2014-11-26 20:34:04

标签: javascript ember.js

有没有办法在Ember JS中使用link-toaction来调用来自不同控制器的动作?

我正在尝试创建一个在不同模板上显示的注销链接,但所有这些模板都将具有不同的控制器。退出逻辑将存在SessionController ....

我在想像

这样的东西

{{link-to 'sign_out' controller='session'}}Sign out{{/link-to}}

<a {{action 'sign_out' controller='session'}}>Sign out</a>

1 个答案:

答案 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>