如何让我的数组在服务中访问

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();
});