2016-04-23 6 views
0

なぜconsole.log(レスポンス)がサーバーからのレスポンスを生成しなかったのですか? SpringMVCが返す "1"または "0"をどのように取得できますか?ここで

var app = angular.module('MyApp', ['ngResource']); 


app.factory('baseRequest', ["$resource", function ($resource) { 

    return $resource("/apis/:id/:method/", {method: '@method', id: '@id'}, { 

     query: {method: 'get', isArray: false} 
    }); 

}]); 


app.controller("MyCtrl", ["$scope", "baseRequest", function ($scope, baseRequest) { 


    $scope.deleteUser = function (id) { 

     baseRequest.delete({method: "deleteUser.req", id: id}, function (response) { 

      //I can't get the response data from server side here. 

      console.log(response); 

     }, function (error) { 

      console.log(error); 

     }); 
    }; 

}]); 

は「1」、それは情報をretruns、私SpringMVCファイルであるか「0」 が、私はそれを取得する方法はないのですか?

@ResponseBody 
    @RequestMapping(value = "/{id}/deleteUser", method = RequestMethod.DELETE) 
    public String deleteUser(@PathVariable("id") Integer id) { 

     System.out.println(id); 


     if (userDao.deleteUser(id)) { 


      return "1"; 

     } else { 

      return "0"; 
     } 

    } 
+0

なぜリソース変数をリソースファクトリに渡すのですか? –

答えて

0

コード全体が間違っているようです。実際にあなたの工場は、次のようになります。

app.factory('baseRequest', ["$resource", function ($resource) { 

return $resource("/apis/:id", { id: '@id'}, { 

    query: {method: 'get', isArray: false} 
}); 

}]); 

、あなたは、コントローラのようになります。(取得

app.controller("MyCtrl", ["$scope", "baseRequest", function ($scope, baseRequest) { 


$scope.deleteUser = function (id) { 

    baseRequest.delete({id: id}, function (response) { 

     //I can't get the response data from server side here. 

     console.log(response); 

    }, function (error) { 

     console.log(error); 

    }); 
}; 

}]); 

あなたがエンドポイントにリソースを定義し、自動的に4つのメソッド(動詞)を作成angularjs 、削除、投稿、投稿)を行います。メソッド名をWeb APIに渡す必要はありません。

+0

私はAngularjsの初心者です。しかし、あなたが示唆したことによると、私はこれについて混乱しています。どのようにしてクライアント側のメソッドは、サーバー側のメソッド 'deleteUser'に 'delete'リクエストを送ることができ、value = "/ {id}/deleteUser"のような@RequestMappingを持っています。 – JSO

関連する問題