如何让我的数组在服务中访问
how to make my array to access in services
这里我使用ionic framework和angularjs,我有一个像
这样的服务
app.service('MyService',function($scope){
var value = $scope.product;
return value;
});
我的控制器是
app.controller("firCtrl",function($scope,$state,MyService){
$scope.product = ['gopi','dinesh','vasu','prasanth'];
//MyService.value = $scope.product;
console.log($scope.product);
$scope.doClick = function(){
console.log('invoke');
$state.go('second');
};
});
我的第二个控制器是
app.controller("secCtrl",function($scope,MyService){
$scope.product2 = MyService.value;
});
这里我的产品有价值,这个价值显示在第一页,我在第一页有一个按钮,可以将产品的价值显示到第二页。我不知道在第二页的列表中查看我的数组。
当我在第一页中使用 ng-repeat 时,我能够显示值和我的按钮,但是当我单击按钮时,我无法在第二页中查看数据
首先你不能在服务工厂函数中注入 $scope
,它只能在 controller
& 指令 link
函数中使用。
服务
app.service('MyService',function(){
var data = []; //private data
var self = this;
//data getter
self.getData = function(){
return data;
}
//data setter
self.setData = function(value){
data = value;
}
});
然后controller会执行setData方法来设置数据为可共享
MyService.setData($scope.product)
然后您可以通过调用 data getter
来访问可共享数据
app.controller("secCtrl",function($scope,MyService){
$scope.product2 = MyService.getData();
});
这里我使用ionic framework和angularjs,我有一个像
这样的服务app.service('MyService',function($scope){
var value = $scope.product;
return value;
});
我的控制器是
app.controller("firCtrl",function($scope,$state,MyService){
$scope.product = ['gopi','dinesh','vasu','prasanth'];
//MyService.value = $scope.product;
console.log($scope.product);
$scope.doClick = function(){
console.log('invoke');
$state.go('second');
};
});
我的第二个控制器是
app.controller("secCtrl",function($scope,MyService){
$scope.product2 = MyService.value;
});
这里我的产品有价值,这个价值显示在第一页,我在第一页有一个按钮,可以将产品的价值显示到第二页。我不知道在第二页的列表中查看我的数组。
当我在第一页中使用 ng-repeat 时,我能够显示值和我的按钮,但是当我单击按钮时,我无法在第二页中查看数据
首先你不能在服务工厂函数中注入 $scope
,它只能在 controller
& 指令 link
函数中使用。
服务
app.service('MyService',function(){
var data = []; //private data
var self = this;
//data getter
self.getData = function(){
return data;
}
//data setter
self.setData = function(value){
data = value;
}
});
然后controller会执行setData方法来设置数据为可共享
MyService.setData($scope.product)
然后您可以通过调用 data getter
app.controller("secCtrl",function($scope,MyService){
$scope.product2 = MyService.getData();
});