我一直在尝试将一个服务对象从http post响应设置到控制器并从另一个控制器获取它.
我在SO或网站上看到的教程更侧重于从 HTML输入到控制器,另一个控制器获取值.
我在SO或网站上看到的教程更侧重于从 HTML输入到控制器,另一个控制器获取值.
我想避免使用rootscope,我是angular-js的新手.
第一个控制器(将Data1和Data2放在一个对象中)
.controller('GetItem',function($scope,$http,$filter,$ionicPopup,$stateParams,$cordovasqlite,$cordovaDatePicker,dataFactory){ ... console.log(resp.data); var data1= resp.data.data1; var data2= resp.data.data2; }
第二个控制器(获取对象并检索data1和data2)
一些指针将深表赞赏!
Update1 :(保存函数有效但Get函数返回EMPTY):
.service('StoreService',function(){ var data1=[]; //{} returns me an empty object this.save=function(data1){ alert('DATA: '+ data1); //able to retrieve string this.data1=data1; }; this.getData1=function(){ alert('DATA1: '+ data1); //unable to get string return data1; }; })
这是从服务中检索的第二个控制器:
.controller('unlock',$timeout,dataFactory,StoreService) { function test(){ console.log(StoreService.getData1());
更新2 :(工作)
托米斯拉夫的掠夺者:http://plnkr.co/edit/srAphQhAYuBZL18MY1Kr?p=preview
@atinder答案是要走的路.以下是该服务的示例:
app.service('StoreService',function(){ var data1={}; var data2={}; this.save=function(data1,data2){ this.data1=data1; this.data2=data2; }; this.getData1=function(){ return data1; }; this.getData2=function(){ return data2; }; });
然后在第一个控制器:
.controller('firstController',function(StoreService){ ..... StoreService.save(resp.data.data1,resp.data.data2); });
在第二个控制器:
.controller('secondController',function(StoreService,$scope){ $scope.data1 = StoreService.getData1(); $scope.data2 = StoreService.getData2(); });