저는 백엔드에서 사용자 데이터를 가져 와서 장치의 로컬 저장소에 저장하는 로그인 기능을 가지고 있습니다.모델이 setTimeout으로 변경된 후 AngularJS보기가 업데이트되지 않았습니다.
내 프로필보기에서 로컬 저장소에서 사용자 데이터를 검색하고 json으로 구문 분석하면 첫 번째 로그인 시도시 데이터를 성공적으로 가져 오지만 다른 계정에 로그인해도보기가 업데이트되지 않습니다. 로컬 스토리지의 사용자 데이터 값이 변경됩니다. 아래
은 로그인 및 프로필 컨트롤러var app = angular.module('starter.controllers', []);
app.controller('LoginCtrl', function(apiURL, $scope, $state, $http, $ionicLoading,$ionicPopup) {
var userData =localStorage.getItem('user');
if (userData != null || userData != undefined) {
$state.go('app.browse');
}
$scope.LogIn = function() {
var url = apiURL+'/login.php';
var credentials = {
username: document.getElementById('username').value,
pword: document.getElementById('pword').value
};
$http.post(url,credentials).then(function(result){
localStorage.setItem('user',JSON.stringify(result.data));
$state.go('app.browse',{},{reload: true});
}).catch(function(error){
//error
})
};
});
app.controller('ProfileCtrl', function(webURL, apiURL, $scope, $stateParams, $state) {
$scope.data = JSON.parse(localStorage.getItem('user'));
$scope.goTo = function(id){
$state.go('app.pet',{petId:id},{reload: true});
}
$scope.doRefresh = function() {
setTimeout(function() {
$scope.data = JSON.parse(localStorage.getItem('user'));
}, 1000);
$scope.$broadcast('scroll.refreshComplete');
};
})
내 코드 이것은 내보기
<div class="list">
<a class="item item-thumbnail-left item-icon-right">
<img ng-src="{{url}}/{{data.userData.avatar}}" id="myImage" >
<h2 class="cli_name">{{data.userData.cli_name}}</h2>
<p>{{data.userData.cli_address}}<br>
{{data.userData.cli_cont}}<br>
{{data.userData.cli_email}}</p>
<button class="button button-icon icon ion-image" ng-click="loadImage()"></button>
</a>
</div>