存储当前用户配置文件的更好方法

时间:2015-02-05 04:17:48

标签: angularjs

我需要在我网站的顶部栏中显示当前用户的名称。用户注销时,用户数据应该消失。我使用了以下两种服务:

app.factory('Auth', ['$resource', function ($resource) {
        return $resource('/user/login');
    }])
    .service('CurrentUser', [function () {
        this.user= null;
    }]);

这是我的登录和topbar控制器。

app.controller('LoginCtrl', ['CurrentUser', 'Auth', '$location', function (CurrentUser, Auth, $location) {
        this.login = function () {
            var me = this;
            me.user = Auth.save(me).$promise.then(
                function (res) {
                    CurrentUser.user = res;
                    $location.path("/");
                }, function (res) {
                    me.errors = res.data;
                });
        }
    }])
.controller('TopBarCtrl', ['CurrentUser', function (CurrentUser) {
        var me = this;
        me.user = CurrentUser;
    }])

使用此控制器和服务必须使用{{contoller.user.user.name}}来显示用户的名字。有没有办法使用{{contoller.user.name}}代替并保持双向绑定?

1 个答案:

答案 0 :(得分:0)

你必须使用

me.user = CurrentUser.user;

当你在第一个设置http.save的结果然后设置为CurrentUser的.user属性时。

服务器的结果是什么,例如json,看起来像什么?