2017-09-27 47 views
0

關於從服務獲取數據並在控制器中使用它的信息有很多,但我已經搜索了互聯網,沒有找到關於如何做到這一點的示例或解釋。如果我有一個基本的控制器:AngularJS:從服務中獲取數據

app.controller('myController', function($scope) { 
    $scope.myObject = [ 
    { 
     x = 1; 
     y = 2; 
    }, 
    { 
     x = 3; 
     y = 4; 
    }] 
}); 

我想編寫要爲對象「myObject的」從控制器,改變對象,並將其發送回控制器的服務。我知道如何編寫服務並將信息傳遞給控制器​​,但服務如何訪問對象「myObject」?

回答

1

你必須:

1)創建服務和修改數據的功能。 3)在控制器中注入服務。 4)打電話給你的服務功能。

看看這個example我已經爲你寫過。

你已經得到了控制:

.controller("MyController",function($scope, ModifyDataService) { 
    $scope.data = "foo"; 
    $scope.dataModified = null; 
    $scope.modifyData = function() { 
     $scope.dataModified = ModifyDataService($scope.data); 
    } 
}) 

和修改數據服務:

.service("ModifyDataService", function() { 
    return function(data) { 
     /** Reverse String **/ 
    if(typeof data !== 'string') throw 'Data must be string'; 
    return Array.from(data).reverse().join(""); 
    }; 
}) 
1

如果您的用例僅涉及更改對象,那麼服務方法可能就是答案。

app.controller('myController', function($scope, myService) { 
    $scope.myObject = [{ 
    x = 1; 
    y = 2; 
    }, { 
    x = 3; 
    y = 4; 
    }]; 

    /* Option 1, transform object in place. */ 
    myService.changeObject($scope.myObject); 

    /* Option 2, replace object. */ 
    $scope.myObject = myService.changeObject($scope.myObject); 
});