角度js访问变量在服务但相同的应用程序

时间:2015-10-01 09:39:14

标签: angularjs

如何访问服务中控制器的属性?

在我的情况下,它是一个数组,我想在我的服务中更改。

我的控制器:

myApp.controller('MainController', function ($scope, $interval, externalDataService, AnalyzeService) {
    $scope.myArray = [];
    var size = 10;

    var analyze = function () {
       if($scope.myArray .length > size) {
          AnalyzeService.doSomething();
       }
    };

    var analyzeData = function () {
        externalDataService.getData().then(function (data) {
            $scope.faceReaderData.push(data);
            analyze();
         });
     };

    $interval(analyzeData , 2000);
});

我的服务:

myApp.service('AnalyzeService', function () {
    this.doSomething = function () {
        //here i want array access
    }
});

1 个答案:

答案 0 :(得分:1)

您不希望这样做,因为它会使您的服务依赖于您的控制器,这是非常不可取的。而是将数组作为参数添加到document.getElementById('controls').appendChild(controlDiv);

doSomething

这样,您的服务根本不依赖于您的控制器,将您的业务逻辑与控制器分开。