여기서 달성하려는 것은 사용자가 로그인했는지 여부에 따라 true/false로 응답하는 API 요청을 보내는 것입니다. 이상적으로 나는 사용자가 로그인 한 경우 로그인 양식을 숨기려고합니다. 각도의 내장 된 http 메서드를 사용하여 약속을 반환하고 이해할 수있는 것이 $ apply에 이미 래핑되어 있기 때문에 범위가 있다고 생각했을 것입니다. 자동으로 업데이트되었습니다.
내 컨트롤러 :
.controller('MyCtrl1', ['$scope', 'isLoggedIn', '$timeout', function($scope, isLoggedIn, $timeout) {
isLoggedIn.getState().then(function(result) {
$scope.displayLogin = result.data.state;
});
$scope.getLoginState = function() {
console.log($scope.displayLogin);
}
}]);
내 서비스 :
.factory('isLoggedIn', function($http, $q) {
return {
getState: function(scope) {
return $http.get('/login-state').then(function(result) {
return result
});
}
}
})
HTML :
<form method="most" action="/login" ng-hide="displayLogin">
내가 NG 클릭으로 버튼이 있기 때문에 값 자체가 업데이트되고 있음을 알 수 올바른 값으로 displayLogin을 반환하는 getLoginState 메서드에 바인딩됩니다. ng-hide가 th를 반영하지 않는 것 같습니다. 뭐야? 범위가 변경 사항을 인식하지 못하는 것처럼
내 truey 값이 양식을 숨길 수 있도록 어떻게 작동합니까?
더 이상의 코드를 볼 수 없습니다. 'form'이'scope'에 있는지'displayLogin' 속성에 있는지 모릅니다. –
[Offtopic] isLoggedIn-Service의 then-callback은 아무데도 돌아 가지 않으므로 cpu-time을 저장하기 위해 삭제 될 수 있습니다. – maklemenz