2017-09-27 45 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); 
});