2012-07-21 7 views
9

Es gibt wahrscheinlich eine einfache Möglichkeit, dies zu tun, aber ich kann nicht herausfinden, wie.

Wenn ich auf meine Schaltfläche Löschen klicken unten Winkel Treffer die folgende URL angezeigt:

http://localhost:8080/rest/managedCourse?id=3 

Wie kann ich es getroffen zu werden, um anstelle eines Anforderungsparameter wie diese Pfadvariablen übergeben:

http://localhost:8080/rest/managedCourse/3 

Heres mein html:

<table> 
    <tr ng-repeat="course in page.content"> 
     <td>{{course.title}}</td> 
     <td>{{course.description}}</td> 
     <td>{{course.creditValue}}</td> 
     <td><button ng-click="remove(course.id)">Delete</button></td> 
    </tr> 
</table> 

Und hier ist mein Controller:

function ManagedCourseController($scope, $resource) 
{ 
    var ManagedCourse = $resource("rest/managedCourse/:courseId", {courseId:'@id'}); 

    $scope.page = ManagedCourse.getPage({"page.page": "0", "page.size": "3", "page.sort": "title", "page.sort.dir": "asc"}); 


    $scope.create = function (managedCourse) { 
     ManagedCourse.create(managedCourse); 
    } 

    $scope.remove = function (courseId) { 
     ManagedCourse.remove({id:courseId}); 
    } 
} 

Antwort

9
function ManagedCourseController($scope, $resource) 
{ 
    var ManagedCourse = $resource("rest/managedCourse/:courseId/:id", 
     {courseId:'@id'}); 
    ... 

sollte es tun

+10

Wird der /: id Teil dann bekommt einfach ignoriert? Ich möchte nur verstehen, wie das funktioniert. – testing123

+2

Obwohl das zu funktionieren scheint, frage ich mich auch, wie das funktioniert. Die [AngularJS-Dokumentation über $ resource] (https://docs.angularjs.org/api/ngResource/service/$resource) scheint dieses Verhalten nicht zu erklären. Es werden Dokumente über überschüssige Werte als Abfrageparameter hinzugefügt, aber nicht wie Teile der URL-Vorlage übersprungen werden. –

+0

Und wie würden Sie es für eine benutzerdefinierte Aktion tun? – Stephane