유효한 사용자를 이름으로 환영하는 개인화 된 HTML보기로 리디렉션하는 로그인 기능을 구현하려고합니다.
내 첫 번째보기는 로그인보기입니다. 사용자가 "Log In"이라는 버튼을 클릭하면 사용자 를 확인하는 ng-click
컨트롤러를 호출 $scope.login
하고 $scope.needsLoggingIn
변수를 설정 한 다음 두 번째보기 (의 값을 표시하는 시작 페이지)로 리디렉션합니다 $scope.needsLoggingIn
.
내 문제는 함수 $scope.needsLoggingIn
에서 설정하려고 할 때 두 번째 뷰 (동일한 각도 컨트롤러 및 모듈을 사용)에 변수가 표시되지 않는다는 것입니다 $scope.login
. $scope.needsLoggingIn
범위 함수 외부에서 컨트롤러에서 다음과 같은 값을 하드 코딩 한 경우 에만 표시 됩니다.
$scope.needsLoggingIn = "Betty";
이것은 $scope.login
설정을 시도 $scope.needsLogging
하고 첫 번째보기에서는 허용되지만 두 번째보기에서는 허용되지 않는 내 컨트롤러 의 기능입니다 .
$scope.login = function (username, password) {
$http({
method: 'GET',
url: ('/login/' + username + '/' + password)
}).then(function successCallback(response) {
if (JSON.stringify(response.data) === '[]')
{
$scope.needsPasswordMessage = true;
if ($scope.needsPasswordMessage)
$scope.needsPasswordMessage = false;
console.log("No match");
} else {
$scope.needsLoggingIn = username;
$scope.issuccessMessage = true;
if ($scope.isfailureMessage)
$scope.isfailureMessage = false;
$window.location.href = '../indextest.html';
return response;
}
}, function errorCallback(response) {
});
};
누구든지 $scope.needsLoggingIn
컨트롤러에 하드 코딩하지 않고 두 HTML보기에서 내 인식을 얻을 수있는 방법에 대한 제안이 있습니까? 내 $scope.login
함수가 변수 값을 설정하고이 특정 컨트롤러를 사용하는 모든 뷰에서 인식하도록하고 싶습니다 .
다른 뷰와 컨트롤러 인스턴스에 걸쳐 유지하려는 데이터는 서비스를 통해 처리해야합니다.
기본적으로 다음과 같은 서비스를 생성합니다.
function userService($http) {
let service = {}
service.needsLoggingIn = ""
service.login = login
return service
function login() {
return $http.... (your login code)
}
}
그런 다음 컨트롤에 서비스를 삽입하고 속성을 적절하게 설정 한 다음 서비스가 싱글 톤이므로 서비스를 삽입하는 모든 곳에서 해당 속성 값을 사용할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다