AngularJS:从服务中获取数据
问题描述:
关于从服务获取数据并在控制器中使用它的信息有很多,但我已经搜索了互联网,没有找到关于如何做到这一点的示例或解释。如果我有一个基本的控制器:AngularJS:从服务中获取数据
app.controller('myController', function($scope) {
$scope.myObject = [
{
x = 1;
y = 2;
},
{
x = 3;
y = 4;
}]
});
我想编写要为对象“myObject的”从控制器,改变对象,并将其发送回控制器的服务。我知道如何编写服务并将信息传递给控制器,但服务如何访问对象“myObject”?
答
你必须:
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("");
};
})
答
如果您的用例仅涉及更改对象,那么服务方法可能就是答案。
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);
});