목표는 사용자가 로그인했는지 확인하는 것입니다. 페이지가로드되면 약속이 현재 사용자를 확인하는 데 사용됩니다. 사용자가 로그인하지 않은 경우 서버는 {}
을 반환합니다. 내 문제는 약속이 빈 개체를 반환하는지 확인하는 방법을 모르겠다. {}
.약속이 빈 개체를 반환하는지 확인하는 방법
myapp.factory('User', function($resource) {
return $resource('/users/:userId', {userId: '@id'}, {
current: {method:'GET', params: {userId: 'current'}}});
});
UI 라우터에서 해결 속성에 사용됩니다
나는 자원을 정의했다. 이 해결 방법은 내 컨트롤러에 데이터를 제공하는 데 사용됩니다.app.get('/users/current', function(req, res) {
console.log(req.isAuthenticated());
console.log(req.user);
if (req.isAuthenticated()) {
res.send(req.user);
} else {
console.log("Not Authenticated");
res.send({});
}
});
문제가 isEmptyObject
함수가 항상 true를 반환한다는 것입니다 :로
resolve: {
user: ['User', function(User) {
return User.current();
}]
},
controller : function($scope, $window, user) {
$scope.user = user;
$scope.userLoggedIn = !isEmptyObject(user);
function isEmptyObject(obj) {
console.log(obj);
var name;
for (name in obj) {
return false;
}
return true;
}
}
익스프레스 서버 측
정의된다.
컨트롤러에 '사용자'가 있지만 (사용자 정의) '사용자'가 삽입됩니다 ('정의되지 않음')? –
'{notLoggedIn : true} '와 같은 서버에서 객체의 속성을 반환하는 것이 더 쉽지 않을 것입니다. – charlietfl