2016-08-02 91 views
0

我想将我的HTTP POST请求包装到一个服务中,然后这个服务可以用来从我的PHP API检索数据,但问题是我不知道如何让服务使用用户输入的数据。 这里看看我的代码Angular Post Service

<form ng-submit="myCtrl.submit()" name="myForm"> 
    <input type="text" ng-model="myCtrl.user.name"> 
    <input type="text" ng-model="myCtrl.user.message"> 
    <input type="submit" value="Submit" ng-disabled="myForm.$invalid"> 
</form> 

我的JS代码

var app = angular.module('MyApp', []); 
app.service('PostService', function($http) { 
    return{ 
     success: function() { 
      return $http.post('process3.php', self.user); 
     } 
    }; 
}); 
app.controller('MyCtrl', ['PostService', function(PostService) { 
    var self = this; 
    var user = {}; 
    self.submit = function() { 
     PostService.success().then(function(data) { 
     console.log(data.data); 
    }); 
    } 
}]); 

PHP代码:

<?php 

$postdata = file_get_contents("php://input"); 
$request = json_decode($postdata); 

@$name = $request->name; 
@$message = $request->message; 

$records = array(
    'name' => $name, 
    'message' => $message 
    ); 
echo json_encode($records); 
?> 

我不能找到解决这个问题,因为我有搜索谷歌和Stackoverflow一次又一次。但我甚至不知道我所问的是不合逻辑的。但是,如果你能够理解问题并有更好的方法来处理它,那么请让我知道。

基本上我想把我的POST请求包装在一个服务中,就像我们使用GET服务一样。

+0

用户在'success:function()'中作为参数怎么样?喜欢'成功:功能(用户)' – tpsilva

+0

^他说什么:) – Rob

+0

是的,我只是想念的!感谢您回复评论! :D – Drazxier

回答

1

您可以将使用对象传递给成功函数。

var app = angular.module('MyApp', []); 
app.service('PostService', function($http) { 
    return{ 
     success: function(user) { 
      return $http.post('process3.php', user); 
     } 
    }; 
}); 
app.controller('MyCtrl', ['PostService', function(PostService) { 
    var self = this; 
    self.user = {}; 
    self.submit = function() { 
     PostService.success(self.user).then(function(data) { 
     console.log(data.data); 
    }); 
    }; 
}]); 
+0

非常感谢你的男人! :D它像一个魅力!,我失踪的东西是发送对象'PostService.success(self.user)' 干杯! – Drazxier

+0

最受欢迎:) –