我正在尝试从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/