这是我从服务获取的对象。
这是我的 Controller 。
var user = useroneService.getLoggedUser(user);
console.log(user);
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/