angularjs – 在控制器之间设置和检索对象的角度服务

前端之家收集整理的这篇文章主要介绍了angularjs – 在控制器之间设置和检索对象的角度服务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在尝试将一个服务对象从http post响应设置到控制器并从另一个控制器获取它.
我在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();
 });

猜你在找的Angularjs相关文章