Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript can';登录后无法获取和检索用户数据_Javascript_Angularjs_Node.js_Angular Services - Fatal编程技术网

Javascript can';登录后无法获取和检索用户数据

Javascript can';登录后无法获取和检索用户数据,javascript,angularjs,node.js,angular-services,Javascript,Angularjs,Node.js,Angular Services,我是angular的新手,我基本上是通过angular服务设置和获取用户数据。我要做的第一件事是,当我登录时,我连接到我的节点路由,并返回数据,如果用户输入了正确的数据进行登录。有了这些数据,我想设置属性并将所有对象传递给服务。在我的loginController中,每个页面都通过一个名为mainCTRL的全局控制器进行控制。当我到达那里时,我观察服务中是否设置了用户属性。如果是,我认为它,如果不是,没有用户登录 代码如下: app.controller('MainCtrl', function

我是angular的新手,我基本上是通过angular服务设置和获取用户数据。我要做的第一件事是,当我登录时,我连接到我的节点路由,并返回数据,如果用户输入了正确的数据进行登录。有了这些数据,我想设置属性并将所有对象传递给服务。在我的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)
angular.js:9509 TypeError:无法设置未定义的属性“nome”
新建时(controller.js:60)
调用时(angular.js:3762)
在Object.instantiate(angular.js:3773)
在angular.js:6884
在angular.js:6270
在forEach(angular.js:329)
在nodeLinkFn(angular.js:6257)
在复合线kfn处(angular.js:5722)
在复合线kfn处(角度js:5725)
在复合线kfn处(角度js:5725)

当前您正在尝试设置
用户
对象的属性
nome
。在设置对象的
nome
属性之前,应该首先初始化
user
对象

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

当前您正在尝试设置
user
对象的属性
nome
。在设置对象的
nome
属性之前,应该首先初始化
user
对象

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

这解决了我的部分问题,谢谢你,朋友,但是现在当我做{{user.nome}时,我总是在视图端得到一个空字符串,这解决了我的部分问题,谢谢你,朋友,但是现在当我做{{user.nome}时,我总是在视图端得到一个空字符串