没有显示任何值

时间:2018-04-12 20:51:46

标签: javascript angularjs rest

所以我正在学习Angular,我想创建一个使用Restful Web服务的Web应用程序。所以我的页面看起来像这样:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html ng-app="Tripeew">
    <head>
        <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Tripeew</title>
    </head>
    <body ng-controller="region">
        <h1>Hello World !!</h1>
             <p>Id : {{All.id}}</p> 
             <p>Nom :{{All.nom}}</p>
             <br/>
        <script type="text/javascript">
            var myapp = angular.module('Tripeew',[]);
            myapp.controller('region',function($scope,$http){
                $http.get('http://localhost:9090/Tripeew_V1.0/webresources/tripeewws.regions/3').succes(function(){
                    $scope.All = response.data ; 
                });
            });
        </script>
    </body>
</html>

但我不能得到ws的结果,这是通过URL工作的,我得到的就是:

Hello World !!

Id : {{All.id}}

Nom :{{All.nom}}

3 个答案:

答案 0 :(得分:1)

使用以下语法:

$http.get('http://localhost:9090/Tripeew_V1.0/webresources/tripeewws.regions/3').then(function(response) {
    $scope.All = response.data ;
});

发生错误是因为作者使用的AngularJS版本为1.6.9,但success()/error()版本中已删除1.6.0-rc.0 see Changelog )。< / p>

  

突然改变:

     

$http已弃用的自定义回调方法 - success()和   error() - 已被删除。你可以使用标准   相反,then() / catch()承诺方法,但请注意该方法   签名和返回值是不同的。

     

success(fn)可以替换为then(fn)error(fn)可以替换为then(null, fn)   替换为catch(fn)$http(...). success(function onSuccess(data, status, headers, config) { // Handle success ... }). error(function onError(data, status, headers, config) { // Handle error ... });

     

在:

$http(...).
  then(function onSuccess(response) {
    // Handle success
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;
    ...
  }, function onError(response) {
    // Handle error
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;
    ...
  });

// or

$http(...).
  then(function onSuccess(response) {
    // Handle success
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;
    ...
  }).
  catch(function onError(response) {
    // Handle error
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;
    ...
  });
     

后:

$http(...).success(onSuccess).error(onError)
     

注意:上面显示的变化之间存在细微差别。使用$http(...).then(onSuccess, onError)或时   onError() $http()回调将{。}}   仅处理onSuccess()调用产生的错误/拒绝。如果   onError()回调会产生错误/拒绝,但不会   由$http(...).then(onSuccess).catch(onError)处理,可能会被忽视。相反,使用时   onError()$http()将处理   onSuccess() marker.setPosition(place.geometry.location); var location = place.geometry.location; var lat = location.lat(); var lng = location.lng(); var layer = new google.maps.FusionTablesLayer({ query: { select: 'geometry, Geographic Name, Agent Name, Agent Website, Agent Phone', from: TableId, where: 'ST_INTERSECTS(geometry, CIRCLE(LATLNG(' + lat + ', ' + lng + '),1))' } }); 产生的错误/拒绝。

答案 1 :(得分:0)

自Angular 1.4.3起,不推荐使用success语法。如果您使用的是较新版本的Angular,则应使用then语法。

答案 2 :(得分:0)

嗯,你的代码有两个问题。第一个是显而易见的,因为有人告诉你要纠正sucesssuccess的错字,其次你没有将响应传递给你成功编写的处理函数。我的意思是你应该传递像.success((response)=> $scope.All = response.data)这样的数据。

注意,我正在将response传递给成功回调。

此外,您最好使用以下语法通过angularjs

发出http个请求
   $http({
     method: 'GET',
    url: '/someUrl'
      }).then(function successCallback(response) {
      // this callback will be called asynchronously
      // when the response is available
     }, function errorCallback(response) {
     // called asynchronously if an error occurs
     // or server returns response with an error status.
    });