我的AngularJS客户端没有使用我的RESTful调用

时间:2016-04-25 03:38:23

标签: javascript angularjs json rest

我正试图在使用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"

但它没有:(。

I place console.log(result.data) and console.log(result)

enter image description here

2 个答案:

答案 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
 }