У меня есть контроллер ниже, в котором я получаю (пользовательские формы Google) как res.data , я пытаюсь присоединить его к моей Userr службе с помощью установщика и пытаюсь получить его в другом контроллере с помощью геттера.
Вот мои контроллеры:
.controller('googleFormsCtrl', function ($scope, $http, $window, Userr,$timeout,$location) {
// SEND THE HTTP REQUEST
var url;
var externalWindow;
// MAKE API REQUEST for Authorization
$http.get('/api/googleAuth').then(function (response) {
url = response.data;
});
this.googleAuthentication = function () {
externalWindow = $window.open(url, "Please Sign in with Google", "width:350px,height:350px");
};
// Close Authorization and set credentials
window.onmessage = function (info) {
externalWindow.close();
// Get the URL
var urlCode = info.data;
// Get pure code of user
var idx = urlCode.lastIndexOf("code=");
var code = urlCode.substring(idx + 5).replace("#", "");
// GET ALL FORMS
Userr.getCredentials(code).then(function (res) {
Userr.setForms(res.data);
$timeout(function(){
$location.path('/usersForms');
},100);
});
};
})
.controller('GoogleAuthCallback', function ($scope, $http) {
this.googleAuthentication = function () {
window.opener.postMessage("My URL is : " + location.href, "*");
};
})
.controller('getSheetData', function (Userr,$scope) {
console.log("comes here");
console.log(Userr.getForms());
})
;
Я присваиваю значение в googleFormsCtrl и пытаюсь получить доступ к данным в getSheetData controller.
Вот часть моей фабрики, где я создал геттеры и сеттеры:
angular.module('userServices',[])
.factory('Userr',function($http){
userFactory = {};
var forms = {};
userFactory.setForms = function(value){
forms.value = value;
console.log(forms.value);
}
userFactory.getForms = function(){
console.log(forms.value);
return forms.value;
}
//User.create(regData);
userFactory.create = function(regData){
return $http.post('/api/users',regData);
};
Когда я пытаюсь получить доступ к данным на другой странице через getSheetData контроллер , он получает неопределенное . Не смог найти проблему за 2 часа. Любая гепатит оценил. Заранее спасибо.