私はAngularJSとプログラミングの面白いこともありますので、あなたにとっては簡単な質問ですが、時間をかけて苦労しています。サービスからのデータは更新されていません
私の目標は簡単です。私のアプリ(ウェブページ)にfacebookのログインがあるように、私はCiul angular-facebook moduleを使っていますが、これは実際には動作しますが、私が望む方法ではありません。ユーザーのログに名前と写真を表示したいときは、手動でページをリロードする必要があります。また、私はlocalStorageに記録されたユーザーを保存しています(OK)。
ログイン後、データが更新されないという問題があります。私のHTMLコードでは、コントローラやサービスからそれらを呼び出そうとしましたが、どちらも古いデータがあり、ページをリロードせずに更新する方法がわかりません。最も興味深いのは、単純な変数で試してみると、魅力的なものです。ここで
は ここapp.factory('mainService', ['$window', '$location', '$route', '$filter', 'Facebook', function (win, $location, $route, $filter, Facebook) {
var scope = {
fbLogin: false,
fbUid: 0,
fbAccessToken: 0,
vkLogin: false
};
var user = {};
if(localStorage.getItem('user') != null) {
user = JSON.parse(localStorage.getItem('user'));
} else {
user = null;
}
return {
scope : scope,
user : user,
fbLogin : function() {
Facebook.login(function (response) {
scope.fbLogin = response.status;
scope.fbAccessToken = response.authResponse.accessToken;
scope.Uid = response.authResponse.userID;
Facebook.api('/me?fields=id,name,email,picture', function (response) {
localStorage.setItem('user', JSON.stringify(response));
});
});
console.log('setting user');
user = JSON.parse(localStorage.getItem('user'));
},
fbLogout : function() {
Facebook.logout(function (response) {
});
user = null;
localStorage.removeItem('user');
},
removeAuth : function() {
Facebook.api({
method: 'Auth.revokeAuthorization'
}, function (response) {
Facebook.getLoginStatus(function (response) {
scope.fbLogin = response.status;
});
});
}
};
}]);
は私のコントローラである私のサービスである
app.controller('IndexController', ['$scope', '$location', '$http', 'mainService', function ($scope, $location, $http, mainService) {
$scope.ms = mainService;
$scope.user = mainService.user;
$http({
method: 'GET',
url: 'backend/api/v1/getItems.php',
headers: { "Content-Type": 'text/json; charset="utf-8"' }
})
.success(function(data, status) {
//alert("status is : "+status);
if(status === 200) {
$scope.items = data;
}
})
.error(function(data, status) {
$scope.items = [];
});
}]);
呼び出すログイン機能< LI> <のhref = "#/" NGクリック= "ms.fbLogin( ) "> Facebookでログインしてください
データをhtmlで呼び出す{{user.name}}または{{ms.user.name}}
ログアウト時にも同じ問題が発生します。
すごいああ、それは私が、私はとても愚かだけど、思ったより簡単でした。どうもありがとうございました。魅力的な作品! – smith
うれしい私は助けることができました!気が気にしないで、その概念を理解するのにしばらく時間がかかりました。がんばろう! – hsiung