これは私がこれまでに持っている奇妙な問題です。この Angularjs プロジェクトを実行するために jaxon バックボーンを使用しています。
Java リソース ファイル
@GET @Path("{query}") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public Signature findByName(@PathParam("query") String query) { return dao.findById(query); }
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 }; }
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'});
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
.