一个简单的Angular JS $ http对象响应的问题?

时间:2015-07-30 15:36:01

标签: javascript php ajax angularjs http

我已经在Angular上做了很多帖子,但是我从来没有收到过回复而且我遇到了麻烦。

PHP

<?php
    return "testing";
?>

我实际上不确定我是否应该在这里使用return或echo。我试过了两个。 Angular文档并没有提供对服务器端脚本的深入了解。

这是在我的控制器中:

this.acquireImages = function() {
        $http.get("resources/php/gallery.php").success(function(response){
            this.returnData = response.data;
        });
    };
    this.acquireImages();

我之前定义returnData只是为了确保它不是一件简单的事情,比如没有显示正确的变量等。

我已经看过文档here并且我尽可能地关注,但我似乎无法使用这个简单的示例。

2 个答案:

答案 0 :(得分:2)

在PHP方面,您必须回显,而不是返回数据。

如果您使用return语句,则会在服务器级别返回一些数据。

所以你需要写你的数据。

<强> PHP

<?php 

    echo 'hello world !';


 ?>

success回调中,响应是我们的原始数据。

但是,您应该将api调用包装到服务中,然后您将获得:

<强>控制器

(function(){

    function Controller(Service){


        //Our callback
        function print(data){
            console.log(data);
        }

        //Call service with our callback
        Service.get(print);

    }

    angular
    .module('app')
    .controller('Ctrl', Controller);

})();

服务

(function(){

    function service($http){

        this.get = function(callback){
            $http.get('server.php').success(function(data){
                callback(data);
            });
        }

    }

    angular
        .module('app')
        .service('Service', service);

})();

答案 1 :(得分:1)

$ http.get函数内部this表示除了外部之外的其他内容。你应该这样做:

var that = this;
$http.get("resources/php/gallery.php").success(function(response){
    that.returnData = response.data;
});

同样在PHP中,您应该echo 'something',因为在Angular中,当您访问此网址时,您获得与浏览器相同的内容

相关问题