簡體   English   中英

服務中但相同應用程序中的angular js訪問變量

[英]angular js access variable in a service but same app

如何訪問服務中控制器的屬性?

就我而言,這是一個數組,我想在服務中進行更改。

我的控制器:

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

您不想這樣做,因為這會使您的服務取決於您的控制器,這是非常不希望的。 而是將數組作為參數添加到doSomething

//Appending 1,2,3 to the given array
function doSomething(someArray) {
    return someArray.concat(['1', '2', '3']);
}

這樣,您的服務完全不依賴您的控制器,從而將您的業務邏輯與控制器分開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM