2016-09-07 5 views
0

私は3つの異なるパスを通してリソースrestパラメータにアクセスする必要があるクライアントを書いています。パスはresource/:resourceId/restparameter,restparameter/:restparameterId/restparameterおよびrestmethod/:restmethodId/restparamterです。私は$locationを使ってこれをやろうとしましたが、うまくいきません。たとえば、path:http://localhost:8085/output/#/restmethod/54/restparameterを介して残りのパラメータにアクセスしようとすると、クライアントはGET http://localhost:8085/WSAT/multirestparameterManager/restparameter/restparameterしか呼び出しません。これは明らかに404が見つかりませんでした。 $resourceオブジェクトを作成しながら、あなたはparamDefaultsを渡していませんangularjsで同じリソースの異なるパスを選択する方法は?

WSAT.controller('restparameterCtrl',['$scope','$resource','$location','$route','$routeParams','popupService', 'restparameterFactory', 
    function($scope,$resource, $location, $route,$routeParams,popupService, restparameterFactory, $window) 
    { $scope.$location = {}; 
     var result = $location.url(); 

     if(result.includes("restparameter")){var Restparameter = $resource('http://localhost\\:8085/WSAT/multirestparameterManager/restparameter/:restparameterId/restparameter/'); 
     $scope.restparameters = Restparameter.get({restparameterId: $routeParams.restparameterId});} 

     else if(result.includes("resource")){var Restparameter = $resource('http://localhost\\:8085/WSAT/multirestparameterManager/resource/:resourceId/restparameter/'); 
     $scope.restparameters = Restparameter.get({resourceId: $routeParams.resourceId});} 

     else if(result.includes("restmethod")){var Restparameter = $resource('http://localhost\\:8085/WSAT/multirestparameterManager/restmethod/:restmethodId/restparameter/'); 
     $scope.restparameters = Restparameter.get({restmethodId: $routeParams.restmethodId});} 

答えて

0

:私はあればそれもGET http://localhost:8085/WSAT/multirestparameterManager/restmethod/restparameter私のコントローラはこれで呼び出すようにしようとしていないので、それは、マッチングには行かないことを推測しています。

:restparameterIdパラメータが渡されたオブジェクトから取得される必要がある場合は、デフォルトのパラメータ{restparameterId:'@id'}を渡して角度を示す必要があります。

他は同じです。

$ngResourceを確認してください。

if (result.includes("restparameter")) { 
    var Restparameter = $resource('multirestparameterManager/restparameter/:restparameterId/restparameter/',{restparameterId:'@id'}); 
    $scope.restparameters = Restparameter.get({ restparameterId: $routeParams.restparameterId }); 
} else if (result.includes("resource")) { 
    var Restparameter = $resource('multirestparameterManager/resource/:resourceId/restparameter/',{resourceId:'@id'}); 
    $scope.restparameters = Restparameter.get({ resourceId: $routeParams.resourceId }); 
} else if (result.includes("restmethod")) { 
    var Restparameter = $resource('multirestparameterManager/restmethod/:restmethodId/restparameter/',{restmethodId:'@id'}); 
    $scope.restparameters = Restparameter.get({ restmethodId: $routeParams.restmethodId }); 
} 
+0

パラメータは、特定のパスとgetメソッドがうまく動作するように個別に試したので、ここで問題になります。私はif(){} else if()条件が間違っていると感じていますが、私は3つのパスの中から選択する別のロジックはできません。 – natalw

+0

いいえそうは思いません。ドキュメントを読んでください。 –

0

$ resourceオブジェクトを使用してパラメータを渡す必要があります。

関連する問題