从模板调用应用程序路由方法

时间:2014-11-09 18:54:50

标签: ember.js

我有一个"经过验证的"我希望从任何模板调用的应用程序路由上的方法。我认为我可以调用它,它会冒泡到应用程序路径,但我似乎无法使它工作。有人可以告诉我我做错了什么,或者更好的方向?提前感谢您的帮助。

路线

ApplicationRoute = Ember.Route.extend
  actions:
    authed: Em.computed ->
      firebase = new Firebase "https://sizzling-fire-4457.firebaseio.com"
      firebase.getAuth()

模板

if authed
  h1: link-to 'contacts' | My Site

==outlet

1 个答案:

答案 0 :(得分:1)

你误解了一些概念。操作是在存在例如clickkeydown的操作时调用的函数。他们通常不会退货。您需要全局属性来指示用户是否已登录,它将返回一些值。属性存储在控制器内。您有一个默认创建的全局控制器,它的调用ApplicationController

App.ApplicationController = Ember.Controller.extend
    authed: Em.computed ->
      firebase = new Firebase "https://sizzling-fire-4457.firebaseio.com"
      firebase.getAuth()

如果你需要这个属性让我们说在IndexController里面,我会做

App.IndexController = Ember.Controller.extend
    needs: ['application']

    authored: Ember.computed.alias 'controllers.application.authed'