그래서 사용자가 외부 API에 성공적으로 로그인 한 후 일부 데이터를 표시하려고합니다.
로그인 할 때 페이지를 새로 고칠 때까지 데이터가 제대로 업데이트되지 않는 경우가 있습니다. 또한이 버그는 전체 새로 고침 후에 만 유지되는 것으로 보입니다. 그리고 API에서 로그 아웃했습니다.
서비스 이렇게이다
angular.module('myApp')
.service('PlayerAPICall', function ($http, $q) {
// AngularJS will instantiate a singleton by calling "new" on this function
var deferred = $q.defer();
return {
getPlayerInfo: function() {
var getPlayerBasic = {
method: 'GET',
url: 'API_URL',
headers: {
'Accept': 'HEADER'
}
};
// This API call returns some basic player information for the current logged in user.
$http(getPlayerBasic).success(function(response) {
deferred.resolve(response);
});
return deferred.promise;
},
}
});
이것 내 지시자 (관련 정보)와 함께이 같은 이런
angular.module('myApp')
.controller('NavbarCtrl', function($scope, PlayerAPICall) {
// Declare $scope objects.
$scope.playerBasic;
PlayerAPICall.getPlayerInfo().then(function(response) {
$scope.playerBasic = response;
});
})
부분 보인다 :
<div class='links-container'>
<div class='row'>
<div class='inputs'>
<form ng-submit='submit()'>
<p ng-show='playerBasic.first_name != null' class='md-text logout-container'>
Hello, {{playerBasic.first_name}}
<span class='logout-span'><button class='btn btn-primary logout-btn' type='submit' ng-model='submit'>Logout</button></span></p>
<p ng-show='playerBasic.first_name == null' class='md-text logout-container'>
Hello, {{playerBasic.email}}
<span class='logout-span'><button class='btn btn-primary logout-btn' type='submit' ng-model='submit'>Logout</button></span>
</p>
</form>
</div>
</div>
이 사용자의 이름 변수가 있음을 알고 있지만 때로는 다음과 같이 말합니다 :
'Hello,' 'Hello, name'대신.
$ 범위가 변경되지 않는 이유가 확실하지 않습니다.
이 구현은 (지금까지) 내가 가진 문제를 해결하는 것으로 보입니다. 내 구현의 메모리 누출 문제 ... 알았어. 나는 지금부터 이렇게 할 것이다 :) – Tulun