AngularJS придает значение фабрике / сервису - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть контроллер ниже, в котором я получаю (пользовательские формы 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 часа. Любая гепатит оценил. Заранее спасибо.

...