我正试图在使用RESTful服务的angularjs上弄湿,但是,我遇到了一个问题。
我有一个REST调用http://localhost:8080/application/webapi/myApp/,它返回以下JSON:
{
"content": "Hello World",
"id": 1
}
另外,我有以下angularjs控制器:
var myApp = angular.module("myModule", [])
.controller("Hello", function($scope, $http) {
$http.get('http://localhost:8080/application/webapi/myApp/').
success(function(data) {
$scope.greeting = data;
});
});
我的index.html有以下内容,
<div ng-controller="Hello">
<p>The ID is {{greeting.id}}</p>
<p>The content is {{greeting.content}}</p>
</div>
其中ng-app在body标签中定义。
但是当我在我的Tomcat服务器上运行我的index.html时,它不会消耗我的REST调用。相反,它会产生我的绑定表达式的空白。
我的index.html如下所示:
My First Application!
The ID is
The content is
我不确定为什么它不会消耗我的REST呼叫?
我的index.html应该说,
My First Application!
The ID is 1
The content is "Hello World"
但它没有:(。
答案 0 :(得分:2)
从角度 DOC
$ http遗留承诺方法成功与错误 弃用。请改用标准方法。如果 $ httpProvider.useLegacyPromiseExtensions设置为false然后这些 方法将抛出$ http / legacy错误。
试试这个
$http.get('http://localhost:8080/application/webapi/myApp/').
then(function(result) {
$scope.greeting = result.data[0];
});
答案 1 :(得分:1)
尝试将代码更改为:
$http.get("http://localhost:8080/application/webapi/myApp")
.then(function(response) {
$scope.greeting = response.data[0];
});
或者:
$http({
method : "GET",
url : "http://localhost:8080/application/webapi/myApp"
}).then(function mySucces(response) {
$scope.greeting = response.data[0];
}, function myError(response) {
$scope.greeting = response.statusText;
});
还要确保在返回类型中将json命名为:
returnJson{
"content": "Hello World",
"id": 1
}