Javascript 如果登录,Ember.js会显示不同的视图

Javascript 如果登录,Ember.js会显示不同的视图,javascript,ember.js,Javascript,Ember.js,我正在尝试(以前是SproutCore)。API调用后如何更改视图 App.userController = Ember.ArrayController.create({ loadUser: function () { var self = this; $.post("/api/user/auth/", {user:'user',password:'pass'},function(user,code){ if (code == 's

我正在尝试(以前是SproutCore)。API调用后如何更改视图

App.userController = Ember.ArrayController.create({
    loadUser: function () {
        var self = this;
        $.post("/api/user/auth/", {user:'user',password:'pass'},function(user,code){
            if (code == 'success') {
                App.User.create(user);
            }
        });
    }
});
App.userController.loadUser();
我的看法是:

<script type='text/x-handlebars'>
    <div class='span10'>
        {{#if App.user }}
            <h1>User</h1>
        {{else}}
            <h1>no User </h1>
        {{/if}}
    </div>
</script>

{{{#if App.user}
使用者
{{else}
没有用户
{{/if}

它将运行
#if App.user
,然后我才能从余烬代码中得到响应。如果我从呼叫中获得了用户,是否可以更改视图?

将此添加到您的应用程序控制器:

layout :layout_switcher

private

def layout_switcher
  user_signed_in? ? 'application' : 'logged_out'
end

我不确定你的问题是否有足够的细节,但我认为你想做的是:

if (code == 'success') {
    App.user = App.User.create(user);
}

嗯,一个javascript问题的ruby答案?如果你能提供一个JSFIDLE来解答你的问题,我将非常乐意为你介绍。你可以把它作为一个起点。