登录后无法获取并检索用户数据

时间:2017-02-04 12:52:46

标签: javascript angularjs node.js angular-services

我是一个有角度的新手,我基本上试图通过角度服务来设置和获取用户数据。我做的第一件事是当我登录时连接到我的节点路由并返回数据,如果用户将正确的数据放入登录。使用该数据,我想设置属性并将所有对象传递给服务。这在我的loginController中,每个页面都通过一个名为mainCTRL的全局控制器来控制。当我到达那里时,我会观察是否在服务中设置了用户属性。如果是,我接受它,如果没有,则没有用户登录。

这是代码:

app.controller('MainCtrl', function ($scope, $state,$location,$http,user) {

    $scope.user.nome = "";

    $scope.showRegister = function () {
        $state.go('register');
    }


    if(angular.equals(user.getProperty(), {})){
        $scope.user.nome = "";  
    }
    else {
        var userProfile = user.getProperty();
        console.log(userProfile);
        $scope.user.nome = userProfile.nome;
    }
    console.log(user.getProperty());
    $scope.user = user.getProperty(); 

    $scope.showLogin = function () {
        $state.go('login');
    }

});

app.controller('loginController', function ($scope, $http, $state,user) {
    $scope.login = function () {

        var data = {};
        data.password = $scope.loja.password;
        data.email = $scope.loja.email;
        $http.post('http://localhost:8080/login/',data) 
        .success(function (data) {
            console.log(data);
            //user.setProperty(JSON.parse(data));
            $state.go('home');
        })
        .error(function (statusText) {
            console.log("failed");
        });
    }
});

我已成功登录控制台日志。它会向我返回一个对象,我想将该对象传递给服务,并在角度视图中检索我想要的属性。问题是我每次都会收到此错误:

angular.js:9509 TypeError: Cannot set property 'nome' of undefined
    at new <anonymous> (controller.js:60)
    at invoke (angular.js:3762)
    at Object.instantiate (angular.js:3773)
    at angular.js:6884
    at angular.js:6270
    at forEach (angular.js:329)
    at nodeLinkFn (angular.js:6257)
    at compositeLinkFn (angular.js:5722)
    at compositeLinkFn (angular.js:5725)
    at compositeLinkFn (angular.js:5725)

1 个答案:

答案 0 :(得分:0)

目前,您正在尝试设置nome对象的属性user。您应首先初始化user对象,然后再设置它的nome属性。

$scope.user = {}; //add this at first line 
//OR
//$scope.user = { 
//   nome: ""
//};
相关问题