Я очень новичок в AngularJS и программирую, так что это может быть легким вопросом для вас, но я изо всех сил борюсь с ним в течение многих часов и не могу понять свое мнение прямо.Данные от сервисного центра обновлены
Итак, моя цель проста, иметь доступ к facebook в моем приложении (веб-страница), я использую Ciul angular-facebook module, это действительно работает, но не так, как я хочу. Когда пользовательские логги я хочу показать свое имя и фотографию, но теперь мне приходится вручную перезагружать страницу, а затем показывает, пока это не будет. Также я записываю зарегистрированного пользователя в localStorage (работает нормально).
Проблема в том, что после входа в данные данные не обновляются. В моем 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> < A HREF = "# /" нг-клик = "ms.fbLogin () "> Войти через Facebook
Вызов данных в html {{user.name}} или {{ms.user.name}}
Ну, та же проблема также с выходом из системы.
Ого, это было проще, чем я думал, что я настолько глуп. Большое спасибо. Работает как шарм! – smith
Рад, что я мог помочь! Не чувствуй себя глупым, мне потребовалось некоторое время, чтобы понять эту концепцию. Удачи! – hsiung