javascript – 使用角度服务/工厂的Setter和getter

我想将大块数据从控制器A传递给控制器​​B.

所以我做了这个工厂

angular.module('MyApp')
  .factory('holdCustomCover', function($scope, img_data) {
        return {
            save: $scope.img_data = img_data;

            get: $scope.img_data;
        }
  })

我做得对吗?所以稍后在控制器A我该怎么办?喜欢
holdCustomCover.save(myImgDataHere)?

然后在控制器B中我执行holdCustomCover.get()我可以得到img值吗?

最佳答案 你不能在工厂/服务函数中注入$scope.服务/工厂是单件对象,负责数据共享.你应该只有那里的公共代码.

在你的代码中,你必须为getter和amp;创建一个函数. setter,它将返回img_data,它是holdCustomer工厂的私有数据.

angular.module('MyApp')
  .factory('holdCustomCover', function() {
      var img_data; //private data
        return {
            //setter
            save: function (data){
              img_data = data;
            },
            //getter
            get: function(){
              return img_data;
            }
        }
 })
点赞