我在下面有一个控制器,我在其中获得(用户的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小时未发现问题。任何帮助。预先感谢。