0

これは私がこれまでに持っている奇妙な問題です。この Angularjs プロジェクトを実行するために jaxon バックボーンを使用しています。

  1. Java リソース ファイル

    @GET @Path("{query}")
    @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
    
    public Signature findByName(@PathParam("query") String query) {
        return dao.findById(query);
    }  
    
  2. control.js ファイル

    function SearchCtrl($rootScope,$scope,Signature) {
    
     // console.log('SearchCtrl is invoked!!!!!!');
      $scope.signature;
      $scope.searcherrormsg='';
    
      $scope.searchaction = function(barcodenum,signature) {
         signature = Signature.query({rewardcardId:barcodenum});
         $scope.signature = signature;
    
         alert("data is " + $scope.signature.name);   <=== This is UNDEFINED   
        };
    
    } 
    
  3. apps.js ファイル

    angular.module('demo', ['demo.filters', 'demo.directives','demo.services.signature']).
      config(['$routeProvider', function($routeProvider) {
    
    $routeProvider.when('/search', {templateUrl: 'partials/search.html', controller: SearchCtrl});
    $routeProvider.otherwise({redirectTo: '/search'});
    
  4. service.js ファイル

    angular.module('demo.services.signature', ['ngResource']).
    factory('Signature', function($resource){
        return $resource('api/signature/:rewardcardId', {}, {
         query: {method:'GET', params:{rewardcardId:'signature'}, isArray:false}
        });
    });
    

これはデータベースを呼び出しており、サーバー コンソールには次のメッセージが表示されています。

 com.sun.jersey.api.container.filter.LoggingFilter$Adapter finish
INFO: 1 * Server out-bound response
1 < 200
1 < Content-Type: application/json
1 < 
{"name":"xxx xxxx","customerid":187,"email":"xxxx@hotmail.com","sign":null,"barcode":"xxxx"}

そして、HTML ページに戻りデータを適切に表示します。たとえば、html ページには

<p>{{signature.barcode}}

{{signature.name}}

上記のデータセットとして名前とバーコードを適切に表示しています。

未定義と言っているjavascriptからデータを取得するのに問題があるだけです。

javascript がデータベースから返されるリソースからデータを取得しようとするときはいつでも、undefined.

4

1 に答える 1