私は初めて約束を使用しようとしています。この質問は私の質問How to pass results from POST request to another page in Ionic and Angularに基づいています。本質的に私は基本的なユーザー認証を行い、有効なログイン情報が入力されたことを確認するためにデータベースへのポストリクエストを作成するサービスを作成しました。私がしたいのは、POSTリクエストからの応答を後でプロファイルページでアクセスできる配列に格納して、ユーザーの情報を表示できるようにすることです。しかし、コントローラに結果を邪魔することなく、約束事を変数に格納するのは苦労しています(成功は印刷されません)。POSTからの結果を格納する方法IonicとAngularの別のコントローラーで使用する要求
controller.js
UserProfile.getProfile(userData).success(function(profile) {
$scope.uProfile = profile;
//invaid input
if ($scope.uProfile == null) {
alert('Invalid Credentials Entered');
//refresh the page
$window.location.reload();
}
else {
var uProfile = $scope.uProfile;
console.log("success");
//console.log(uProfile);
// $state.go('tab.profile',{usrProfile: uProfile}); //Moveto the profile page
}
services.js
.factory('UserProfile',function($http) {
var profileInfo = {};
var profiles = [];
return {
getProfile: function(data) {
console.log("in service");
var url = 'https://cs496-app3.herokuapp.com/api/person/login/';
var obj = {
'email_address': data.email,
'password': data.password
};
$http.post(url, obj)
.then(function(result){
profiles[0] = result;
console.log(profiles[0]);
return profiles[0];
})
// console.log(profiles[0]);
}
};
});
私は単に
return $http.post(url, obj)
私のサービスを変更すると、すべてが正常に動作しますが、その後、私は結果にアクセスすることはできません後の投稿から別のコントローラにどのように私は約束を保存することができますか?