将params传递给$ http into指令

时间:2015-05-20 15:49:31

标签: angularjs

我使用这种服务模式从DB获取评论:

.service('getComArt', function($http) {
    delete $http.defaults.headers.common['X-Requested-With'];
    this.getData = function(callbackFunc) {
        $http.get('http://www.domain.it/commenct.php')
            .success(function(data) {
                callbackFunc(data)
            })
            .error(function() {
                alert("Error!")
            })
    }
})

是否可以调用服务添加控制器采用的参数? 例如,如果我将使用相同的服务,但只提取id = xxxx!

的hte注释

3 个答案:

答案 0 :(得分:0)

您可以将参数传递给$http.get,如下所示:

$http.get(URL, { params: { id: myId } }).success(...).error(...)

您的参数将被$http转换为queryString,并将被发送到服务器。

答案 1 :(得分:0)

如果您只想通过传递参数来获取,您只需要连接到URL,否则如果您的方法是POST,则必须定义数据

得到:

$http.get('http://www.domain.it/commenct.php/data1/data2')

发布:

var data = {name:'John', password : '1234'}
$http.post('http://www.domain.it/commenct.php/', data).success(successCallback);

答案 2 :(得分:0)

好的,我认为解释不好!所以这就是解决方案:

创建工厂以进行$ http调用

.factory('getContent', function($http) {
    return function(id){
        return $http({
            method: 'GET',
            url: 'http://www.domain.it/page.php',
            params: {id:id}
         });
    }
})  

然后在控制器中:

getContent(id).success(
    function (data) {$scope.items = data}
);