AngularJS为工厂/服务附加价值

时间:2018-09-18 08:13:24

标签: angularjs model-view-controller factory

我在下面有一个控制器,我在其中获得(用户的Google表单)为 res.data ,我尝试通过设置器将其附加到我的 Userr 服务中并尝试通过getter在另一个控制器中获取它。 这是我的控制器:

.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 控制器中访问数据。

这是我工厂的一部分,我在其中创建吸气剂和吸气剂:

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小时未发现问题。任何帮助。预先感谢。

0 个答案:

没有答案