javascript - AngularJS:无法访问 Controller 中的对象属性

标签 javascript angularjs

这是我从服务获取的对象。

这是我的 Controller 。

var user = useroneService.getLoggedUser(user);
console.log(user);

enter image description here

console.log(user.data);

当我尝试访问数据时,出现未定义。如何访问对象数据?

用户.service.js

'use strict';
angular.module('app').service('userService',['authService', 'userTransformer','LoggedUser', function(authService, userTransformer, LoggedUser) {
  this.getLoggedUser = function(user){
    return authService.login(user).then(function (response) {
      var loggedUser = userTransformer.transform(response.data);
    });
  };
}]);

logged.user.js

angular.module('app').value('LoggedUser', function () {  
    var LoggedUser = function () {
        this.dispalyName = '';
        this.token = '';
        this.logged = false;
    };  
    LoggedUser.prototype = {    
    };
});

用户.transformer.js

angular.module('app').factory('userTransformer',['LoggedUser', function (LoggedUser) {
  //logged user transform
  var transformObject = function (response) {
    var model = new LoggedUser();
    angular.extend(model, response);
    return model;
  };
  return {
    transform: transformObject
  };
}]);

流量

AuthService(get data)==>UserService(data transform to LoggedUser using the transformer)
    ==>LoginController

最佳答案

您没有返回 promise 。将 Controller 代码更改为:

useroneService.getLoggedUser(user).then(function(data) {
    var user = data;
    console.log(user);
})

还有一件事,您没有从服务返回响应:

return authService.login(user).then(function (response) {
  var loggedUser = userTransformer.transform(response.data);
  return loggedUser; //add this
}); 

关于javascript - AngularJS:无法访问 Controller 中的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34241384/

相关文章:

javascript - 如何在 Angular 中正确添加额外验证指令?

javascript - 在多个元素上使用 TweenMax

javascript - ES5 中如何实现弱映射?

javascript - jQuery 下拉 Bootstrap 不适用于某些情况

javascript - 如何将 id 值加 1 (Javascript)

node.js - Express 和 AngularJS - 尝试打开主页时网页卡住

javascript - 日期范围过滤器不起作用

javascript - 使用html :not when element has multiple classes

javascript - 无法查看 TypeScript 生成的 javascript 文件中的注释

angularjs - AngularJS 中下拉值的时间