if / else条件更改时更新Ember Handlebar模板

时间:2013-12-03 14:47:02

标签: ember.js

我在我的应用中使用了一个小“帮助”功能来获取当前用户/登录状态:

App.ApplicationController = Ember.Controller.extend({

  isAuthenticated: function() {
    return Docket.AuthManager.isAuthenticated()
  }.property('Docket.AuthManager.apiKey'),

  currentUser: function() {
    return Docket.AuthManager.get('apiKey.user')
  }.property('Docket.AuthManager.apiKey')

});

现在这就是我的application.hbs的样子:

{{#if isAuthenticated}}
    foo
{{else}}
    bar
{{/if}}

但即使isAuthenticated返回另一个值,模板也不会得到它。唯一的解决方案:刷新页面。如何在不刷新整个页面的情况下实现这一目标?

1 个答案:

答案 0 :(得分:1)

如果Docket.AuthManager.apiKey不是一个余烬属性,(我很确定它不是),ember将不知道它何时被改变,导致计算属性重新触发并再次检查。 Ember只知道使用其getter和setter获取/设置的属性。