我正在尝试从REST服务获取数据并在浏览器中显示元素。
代码段:

Server.prototype.typeNames = function() {
                var json = '{'
                        + '"query" : "MATCH n RETURN n.typeName LIMIT 10"'
                        + '}';
                $http.post("http://localhost:7474/db/data/cypher", json).then(function(response) {
                    var data = response.data;
                    console.log(data);
                    return data;
                });
            }


我确定JSON和REST调用正确无误,因为我可以在控制台中看到数据,并且数据正确无误,但我无法在页面上看到它们。
我的js文件中也有这个:

$scope.typeNames = Server.typeNames()


在HTML中:

{{typeNames}}


另外:我为chrome安装了AngularJS调试扩展,并且它也为null:

typeNames: null


在这里(http://pastebin.com/itHv97da)您可以找到更大一部分的代码。这段代码不是我的,Server.prototype的东西都在那里。我刚刚添加了Server.prototype.typeNames,并且试图使其正常工作。

最佳答案

您的typeNames函数未返回任何内容。

根据版本,您可以尝试返回整个$ http部分,但更好的方法是返回一个promise,并在.then回调中解析该promise。

像这样:

var deferred = $q.defer();
$http.post("http://localhost:7474/db/data/cypher", json).then(function(response) {
    var data = response.data;
    console.log(data);
    deferred.resolve(data); // <--- this is the key
    return data;
});
return deferred.promise;

关于javascript - AngularJS进行REST调用并在浏览器中显示结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24382909/

10-11 14:05