0

所以我在后端设置了一个简单的登录系统。登录和注销功能有效,但我正在尝试进行状态管理。我有以下状态管理器:

App.loginStateManager = Ember.StateManager.create({
  initialState: "unknown",
  loggedIn: Ember.State.create({}),
  loggedOut: Ember.State.create({}),
  unknown: Ember.State.create({
    enter: function() {
      $.ajax({
        url: "/loginstate",
        type: "GET",
        success: function(data) {
          if(data == "loggedin") {
            LocalBookFinder.loginStateManager.transitionTo("loggedIn");
          }
          else {
            LocalBookFinder.loginStateManager.transitionTo("loggedOut");
          }
        }
      });
    }
  })
});

我从“未知”开始的原因应该是loggedOut,是因为在页面加载时,我想查询服务器以查明用户是否已经有会话。这就是 ajax 逻辑的用途。现在,状态确实更新了,但是因为我的视图已经加载,它显示了登录/注册链接。有没有办法可以将状态绑定到应用程序模板?

4

1 回答 1

0

您可能能够在应用程序控制器上设置一个属性,并在应用程序模板中设置一个条件。这将自动绑定,因此您可以在成功函数中设置应用程序控制器上的属性,并且 UI 应相应更新。

{{#if controller.loginState }} 
  Show something 
{{ else }} 
  so not ready loading... 
{{/if}}

然后在您的控制器中进行类似的操作。

App.ApplicationController = Ember.Controller.extend({ 
  .... 
  loginState: null 
});
于 2013-04-11T20:44:21.493 回答