Gen*_*ene 7 angularjs ionic-framework
我一直在尝试将一个服务对象从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;
}
Run Code Online (Sandbox Code Playgroud)
第二个控制器(获取对象并检索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;
};
})
Run Code Online (Sandbox Code Playgroud)
这是从服务中检索的第二个控制器:
.controller('unlock', function($scope, $timeout, dataFactory, $stateParams,StoreService) {
function test(){
console.log(StoreService.getData1());
Run Code Online (Sandbox Code Playgroud)
更新2 :(工作)Tomislav的掠夺者:http://plnkr.co/edit/srAphQhAYuBZL18MY1Kr?p =preview
Tom*_*lav 11
@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;
};
});
Run Code Online (Sandbox Code Playgroud)
然后在第一个控制器:
.controller('firstController',function(StoreService){
.....
StoreService.save(resp.data.data1,resp.data.data2);
});
Run Code Online (Sandbox Code Playgroud)
在第二个控制器:
.controller('secondController',function(StoreService,$scope){
$scope.data1 = StoreService.getData1();
$scope.data2 = StoreService.getData2();
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13612 次 |
最近记录: |